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+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---
No comments:
Post a Comment