Hi Don,thanks for your reply, but the brackt was set correctly, PostAuthor belongsto LastPost, not to Group directly.
What really worries me is that all the members are fetched. They belong via HABTM to the Group, but if I don't mention them in my containment statement they shouln't be fetched. Correct?
Anja Am 15.05.2011 04:29, schrieb dreamingmind:
Anja, There is a parenthesis misplacement in your sample code. If that exists in your real code it's probably your problem. The array for LastPost doesn't get its closing paren until after PostAuthor. Here's the correction: $containment = array( 'GroupOwner' => array( 'fields' => array('GroupOwner.nickname', 'GroupOwner.id') ), 'LastPost' => array( 'fields' => array('LastPost.user_id', 'LastPost.created'), ), 'PostAuthor' => array( 'fields' => array( 'PostAuthor.id', 'PostAuthor.firstname', 'PostAuthor.nickname', 'PostAuthor.lastname' ) ) ); Regards Don On May 14, 7:05 am, acl68<[email protected]> wrote:Hello everybody, I try to use a containable search in a CakePHP legacy project using Cake 1.2. I have often uses containable, but never togeterh with aliases. So no idea if that might be the poblem ore something else. The model relations are as follows: Group__ hasMany Members alias Users belongsTo |__ GroupOwner alias User |__ LastPost alias ForumPost |___belongsTo |__ PostAuthor alias User As you can see we use model aliases. I have the following containment array: $containment = array( 'GroupOwner' =array( 'fields'=array('GroupOwner.nickname', 'GroupOwner.id') ), 'LastPost' =array( 'fields'=array( 'LastPost.user_id', 'LastPost.created'), 'PostAuthor' =array( 'fields' =array( 'PostAuthor.id', 'PostAuthor.firstname', 'PostAuthor.nickname', 'PostAuthor.lastname') ) ) ); The strange behaviour is that I get all model data on the second level e.g. all my GroupMembers which I don't want, but not my PostAuthor which I want. If I add a field condition to my find e.g.: $groups = $this-Group-find('all', array('contain' =$containment, 'fields' =array('GroupOwner.id'), 'limit' =2)); my result looks like following: GroupOwner (Array, 5 elements) id (String, 2 characters ) 14 nickname (String, 11 characters ) Helfenstein avatar (Array, 4 elements) is_online (Integer) 0 name (String, 12 characters ) Helfenstein LastPost (Array, 3 elements) user_id (String, 6 characters ) 878781 created (String, 10 characters ) 1237332851 id (String, 10 characters ) 1009713631 GroupCategory (Array, 0 elements) Member (Array, 0 elements) Tags (Array, 0 elements) so Members are still there, though luckily empty, but still no PostAuthor. My complete Information from the "Group" model is missing, too *sigh* Has anybody an idea what might be the problem? Of course var $actsAs = array('Containable'); is set in the app_model.php I find this a very strange behaviour (no pun intended). Thanks in advance for any help! Anja
--Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
<<attachment: anja_liebermann.vcf>>
