Personaly I never set any conditions in the relations (hasOne, hasMany ....)

all conditions are defined in the function since depending on why I am
getting the data and for who conditions constantly change.

You can say conditions Posts => 1 //active so you only by default display
all active Post.

but then when its time to get all users posts so they can edit their data
you need to set condition where Post.id => $user_id. If you kept the regular
condition you would only pull that users active posts not all.

But I just developed from day 1 like this so also would be curious to see
what others are doing in regards to the other params available for
relations.

Good question :)

K

-----Original Message-----
From: cake-php@googlegroups.com [mailto:cake-php@googlegroups.com] On Behalf
Of Eric Anderson
Sent: Wednesday, March 02, 2011 3:57 PM
To: CakePHP
Subject: How to properly use "conditions" in model associations

Hi everyone,

I'm wondering what is the 'proper' or 'suggested' way of using
"conditions" in model associations. I'm using an Activity model to log
activities performed throughout my app. I then use this table to
output activity feed / notifications style sections to users. The
problem I'm having is that Cake throws a "column not found" error (I
guess technically it's MySQL throwing the error). When running a
query, Cake for some reason formulates the query so that MySQL is
looking for columns from my Activity table inside of other tables. Do
I need to specify "conditions" in both my User and Activity model, as
shown below? When I remove the conditions from the Activity model,
everything runs fine.

<?php

class Activity extends AppModel {

    var $name = 'Activity';
    var $actsAs = array('Containable');

        var $belongsTo = array(

                // Doers
                'User' => array(
                'className' => 'User',
                'foreignKey' => 'doer_id',
                        'conditions' => array('Activity.doer_table' =>
'users')
        )
}
?>

<?php

class User extends AppModel {

    var $name = 'User';
    var $actsAs = array('Containable');


    var $hasMany = array(
                'Activity' => array(
                'className' => 'Activity',
                'foreignKey' => 'doer_id',
                        'conditions' => array(
                                'Activity.doer_table' => 'users'
                        ),
                'dependent' => true
        );
}
?>

-- 
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
cake-php+unsubscr...@googlegroups.com For more options, visit this group at
http://groups.google.com/group/cake-php

-- 
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
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to