If you want to get the students in some course, use:
$this->Student->findAll( array( 'Student.course' => $theCourse ) );
So you haven't to fetch all students from db (which is slow).
To pass variables to view:
$this->set('varname', $var);
$this->set('other', $isEasy);
then in the view you have: $varname and $other.
To save your time and mine, just go to: http://book.cakephp.org
On Sat, Mar 29, 2008 at 3:14 AM, damo <[EMAIL PROTECTED]> wrote:
>
> Have gotten a bit further, but now trying to figure out how to pass
> the variable inserted from my search controller to my results view.
>
> Here is my search controller (works a treat except for the search
> bit ;)
> function searchcourse()
> {
> if (!empty($this->data)) {
> $course = $this->data['Student']['course'];
> $student=$this->Student->find(array('Student.course' =>
> $course));
>
> if ($student) {
> $this->redirect(array('action' => 'viewsome', $course)); //
> not sure what to put here
> } else
> {
> $this->Flash('Course not found','/students/searchstudent');
> }
> }
> }
>
> and my 'viewsome' controller
> function viewsome($course = null)
> {
> $this->set('students', $this->Student->findAll());
> }
>
> finally the viewsome view
> <?php
>
> $coursename ="???"; //how do I get the variable in here
>
> foreach ($students as $student):
> if ($student['Student']['course'] == $coursename){
>
> $number = $student['Student']['studentnumber'];
> $name = $student['Student']['studentname'];
> $course = $student['Student']['course'];
>
> echo "<tr><td>$number</td>";
> echo "<td>$name</td>";
> echo "<td>$course</td></tr>";
> }
>
> I think that once I have this figured out, I will be able to
> manipulate it to do any search.
>
> Thanks again,
> Damo.
>
>
> On Mar 24, 7:40 am, "Dardo Sordi Bogado" <[EMAIL PROTECTED]> wrote:
>
> > On Mon, Mar 24, 2008 at 1:32 AM, damo <[EMAIL PROTECTED]> wrote:
> >
> > > thanks again Dardo,
> > > I got the date working, although I also had to add the 'minYear' also
> > > or else we only have very young students ;)
> >
> > You are welcome.
> >
> > > Also got thesearchfunction to work with only a little tinkering.
>
> > > Took me a while to realise that I needed to change the form to: '<?php
> > > echo $form->create('Student', array('action' => 'search')); ?>'
> > > but that was straight forward. I also needed to change the flash
> > > message to $this->Flash('Student not found','/students/search');
> >
> > Nice.
> >
> > > Am I correct in assuming that I will need to put in differentsearch
> > > functions for each type ofsearchI want to do. Eg. studentsearch,
>
> > > coursesearch? Where coursesearch returns all the students doing the
> > > course (I would also need a differentviewfunction also, or could I
>
> > > just manipulate my viewall function, because that is how I would like
> > > it presented).
> >
> > That depends of your style, but in general I think is a good practice
> > to put thosesearchseparated (I'm talking without having seen your
>
> > code).
> >
> > > Now I'm really getting somewhere! Albeit with my hand held :)
> >
> > I'm happy you are right on track, enjoy CakePHP!
> >
> >
> >
> > > On Mar 23, 5:16 pm, "Dardo Sordi Bogado" <[EMAIL PROTECTED]> wrote:
> >
> > > > On Sun, Mar 23, 2008 at 3:00 AM, damo <[EMAIL PROTECTED]> wrote:
> >
> > > > > Thanks Dardo, I have taken your advise and added the additional
> > > > > field. It all seems to work great now, I'm suprised with how
> quickly
> > > > > things come together even on my first attempt. So now I have an
> add,
> > > > > edit, delete,viewfunctions. All of this is based of the tutorial
>
> > > > > and I am very pleased with my progress but I am quickly realising
> > > how
> > > > > much more there is to it!!
> >
> > > > You are wecome, I'm glad you are making progress, cake is so powerful.
> >
> > > > > A couple of more questions:
> > > > > I have a 'date' field which is for Date of Birth. In the addformas
> > > > > it is it lists dates from 1988 to 2028. I obviously don't need
> future
> > > > > dates for this, so how can I change this so that the latest date is
> > > > > today (or some arbitrary recent date), and it's earliest date is
> back
> > > > > x amount of years.
> >
> > > > $form->input('mydatefield', array('maxYear' => 2008));
> >
> > > > > Second, I would like to put together a very simplesearchfunction
> > > > > preferably based upon the tutorial (because I understand that). I
> > > > > haven't been able to find anything particularly easy to implement
> in
> > > > > my reading so far. All I really want to do issearchfor the
>
>
> > > > > 'student_number' and then 'view' that record, failing that echo
> > > > > 'student doesn't exist', or something like that.
> >
> > > > This may work,
> >
> > > > in your controller :
> >
> > > > functionsearch() {
> >
> > > > if (!empty($this->data)) {
> > > > $number = $this->data['Student']['student_number'];
> > > > $student = $this->Student->findByStudentNumber($number);
> > > > // or : $student =
> > > > $this->Student->find(array('Student.student_number' => $number));
> >
> > > > if ( $student) {
> > > > $this->redirect(array('action' => 'view',
> $student['Student']['id']));
> > > > } else {
> > > > $this->Session->setFlash('Student not found');
> > > > }
> >
> > > > }
> > > > > On Mar 22, 7:04 pm, "Dardo Sordi Bogado" <[EMAIL PROTECTED]> wrote:
> > > > > > Cake automagically sets primary keys fields as hidden, you can
> > > > > > override the default behavior:
> >
> > > > > > echo $form->input('id', array('label' => 'Student Number: ',
> 'type' => 'text'));
> >
> > > > > > Maybe is better, just to add a new field called student_number
> and
> > > > > > make it an sql unique index and let the ids alones.
> >
> > > > > > On Sat, Mar 22, 2008 at 2:41 AM, damo <[EMAIL PROTECTED]> wrote:
> >
> > > > > > > I'm sure this is ridiculously simple to resolve, but the
> below seems
> > > > > > > to work perfectly:
> >
> > > > > > > <h1>Add Student Record</h1>
> >
> > > > > > > <?php echo $form->create('Student'); ?>
> >
> > > > > > > <?php
> > > > > > > echo $form->input('id', array('label' => 'Student
> Number: '));
> > > > > > > echo $form->input('studentname', array('label' =>
> 'Student
> > > > > > > Name: '));
> > > > > > > echo $form->input('studentdob', array('label' =>
> 'Student Date
> > > > > > > of Birth: '));
> > > > > > > echo $form->input('course', array('label' => 'Current
> Course:
> > > > > > > '));
> > > > > > > ?>
> >
> > > > > > > <?php echo $form->end('Insert'); ?>
> >
> > > > > > > except that the id component of theformdoesn't display at
> all....
> >
> > > > > > > When I insert the record, everything goes in correctly, except
> > > > > > > obviously the the 'id'. The 'id' is set as the primary key
> for the
> > > > > > > table, although I have toggled this. Also, I would have
> preferred to
> > > > > > > have the 'id' labelled something like 'studentnumber', but
> theview
> > > > > > > option wouldn't work when I had it setup this way.
> >
> > > > > > > Many thanks,
> > > > > > > Damo
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---