Thank you. This nearly works perfect. Unfortunately, I get a warning:
Notice (8): Undefined index:  Person
when calling if (isset($results[$this->alias]['birthdate'])).
The call $this->alias returns Person. Isnt that strange. I even
reproduced the example from the cakephp documentation for afterFind()
and have the same behaviour.
Can anybody explain what I am doing wrong?

Thank you in advance!

On 16 Jun., 19:14, brian <[email protected]> wrote:
> Use the model's afterFind() method to add the age to your data. Also,
> your calculation is not very robust. Try this:
>
> function afterFind($results)
> {
>         if (isset($results[$this->alias]['birthdate']))
>         {
>                 $results[$this->alias]['age'] = 
> $this->getAge($this->alias]['birthdate']);
>         }
>         return $results;
>
> }
>
> function getAge($dob)
> {
>         list($y, $m, $d) = explode('-', $dob);
>         $year_diff = date('Y') - $y;
>
>         if (date('Y').$m.$d > date('Ymd')) $year_diff--;
>
>         return $year_diff;
>
> }
>
> The above assumes that birthdate field is in the form 'YYYY-mm'dd'.
>
> On Tue, Jun 16, 2009 at 8:51 AM, Saibot<[email protected]> wrote:
>
> > Hi,
>
> > Suppose you have a model class 'Person' which has a attribute
> > 'birthdate' and a method 'get_age()'.
> > function get_age() {
> >    return (int)date('Y') - self.birthdate;
> > }
>
> > How can I call the get_age() method in my Person views?
>
> > Thanks in advance.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" 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