cakephp3基于条件的协会不起作用

时间:2015-10-13 12:05:15

标签: cakephp associations cakephp-3.0

我正在使用hasOne association.Here我的UserMastersTable代码:

class UserMastersTable extends Table {
public function initialize(array $config) {
parent::initialize($config);
        $this->table('user_masters');
 $this->hasOne('PersonMasters', [
            'className' => 'PersonMasters',
            'foreign_key' => 'user_master_id',
            'conditions' => ['PersonMasters.status' => 1],
            'dependent' => true,

        ]);
} }

在我的控制器中使用find()时,它会获取status ='1'的所有user_masters数据和person_masters数据。

但问题是我已经指定了条件,其中关联bind..already给出的条件只显示person_masters.status=1的数据。

那么为什么它会显示user_masters的所有数据?

如果我在控制器中的find()中给出条件,那么它工作正常..

$this->UserMasters->find('all', 
                         ['contain' => 
                            ['PersonMasters'],
                          'conditions' => 
                            ['PersonMasters.status' => 1]
                         ]);

那么,我怎么能全局给出只获取user_masters和person_masters数据的条件PersonMasters.status=1

1 个答案:

答案 0 :(得分:0)

尝试这可能会解决您的问题

$this->UserMasters->find('all',[
                     'contain' => 
                        ['PersonMasters' => [
                           'conditions' => ['status' => 1]
                        ]
                     ],

                     ]);