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
-~----------~----~----~----~------~----~------~--~---

Reply via email to