假设我在CakePHP应用程序中有ModelA
和ModelB
。 ModelA
和ModelB
之间的关联类型如下:
ModelA hasOne ModelB
ModelB belongsTo ModelB
我希望ModelA
上的find()查询只有在number
的{{1}}字段不为空时才返回内容(否则返回空)。我试过这样的东西但是我的ModelA和ModelB仍然在查询结果中返回,即使ModelB的ModelB
字段为空:
number
如您所见,我将条件放在$this->ModelA->find('first', array(
'contain' => array(
'Model B' => array(
'conditions' => array(
'ModelB.number IS NOT NULL'
)
)
),
'conditions' => array(
'ModelA.id' => 13
)
));
contain
上。我希望我能在这里做的很清楚。有人可以帮忙吗?
谢谢
答案 0 :(得分:1)
您应该始终检查CakePHP执行的查询。通过启用调试级别2,SQL语句应该在您的页面上可见。
在您的情况下,我怀疑未正确指定NOT NULL
条件。应该是这样的;
$this->ModelA->find('first', array(
'contain' => array(
'Model B' => array(
'conditions' => array(
'NOT' => array(
'ModelB.number' => NULL
)
)
)
),
'conditions' => array(
'ModelA.id' => 13
)
));