Thank you Don! It seems that containable isn't the right solution for this problem :c( I guess I have to work with unBind instead.
Anja Am 17.05.2011 06:28, schrieb dreamingmind:
Anja, Spent a bit more time with containable. No answer but if it's any consolation but I can't get any proper result with a HABTM even without an alias. It could be I'm still misunderstanding some detail... The two away table just comes pouring in no matter what I've tried. Don On May 16, 1:31 am, Anja Liebermann<[email protected]> wrote: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 DonOn 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 UserAs 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.phpI find this a very strange behaviour (no pun intended).Thanks in advance for any help!Anjaanja_liebermann.vcf < 1KViewDownload
--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>>
