Post your controller code. afterFind will be called as much times as much you call find.
On Jul 29, 9:38 pm, iFeghali <igor.fegh...@gmail.com> wrote: > anyone ? > > On 28 jul, 17:31, iFeghali <igor.fegh...@gmail.com> wrote: > > > > > Hello All, > > > I found myself stuck for a week in an issue that I would really > > appreciate any kind of help. Thats my scenario: > > > Machine HABTM Service > > Machine belongsTo Type > > Type hasOne Machine > > Machine hasMany MachineContact > > MachineContact belongsTo Machine > > > Now I have Machine->afterFind() hypothetically defined as: > > > <?php > > function afterFind($results, $primary = false) { > > print_r($results); > > return $results;} > > > ?> > > > Recursive is set to 2 for everything. So far so good. > > > If I go to /services/view/someId I get: > > > Array > > ( > > [0] => Array > > ( > > machine attribs ... > > [MachinesService] => Array > > ( > > ... > > ) > > [Type] => Array > > ( > > ... > > ) > > [MachineContact] => Array > > ( > > [0] => Array > > ( > > ... > > ) > > > [1] => Array > > ( > > ... > > ) > > ) > > ) > > ) > > Array > > ( > > [0] => Array > > ( > > [Machine] => the Array above > > ) > > ) > > > First question, I do not understand why afterFind() was called twice. > > In the SQL log there is only one query searching the machines table. > > As I browsed cake's source I found that afterFind() in called in the > > model layer and after that again at the DB layer. Did I get it right ? > > If so, why is the reason for that ? > > > But the real issue comes when I go to /types/view/someId: > > > Array > > ( > > [0] => Array > > ( > > [Machine] => Array > > ( > > ... > > ) > > ) > > ) > > Array > > ( > > [0] => Array > > ( > > [Machine] => Array > > ( > > [0] => Array > > ( > > machine attribs... > > [Type] => Array > > ( > > ... > > ) > > [MachineContact] => Array > > ( > > [0] => Array > > ( > > ... > > ) > > ) > > [Service] => Array > > ( > > [0] => Array > > ( > > ... > > ) > > ) > > ) > > ) > > ) > > ) > > > afterFind() is called twice again as [un]expected. The problem is, > > this time, in the first run it didn't fetch any of the Machines > > associated models, even though recursive is set to 2. Also, the array > > is indexed by model name what doesn't happens in the first test. > > Secondly, in the second run the machine array comes complete with all > > the attributes plus the associated models, indexed by model name > > again. > > > So, what did I missed here ? > > > Thank you. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---