【发布时间】:2014-11-23 14:09:08
【问题描述】:
我有一个用户模型,它与配置文件模型具有 hasOne 关系。我想找到没有与之关联的个人资料的用户。我不知道 counterCache 是否适用于 hasOne 关系,或者是否有更好的方法与适当的条件。
【问题讨论】:
标签: cakephp find relation zero has-one
我有一个用户模型,它与配置文件模型具有 hasOne 关系。我想找到没有与之关联的个人资料的用户。我不知道 counterCache 是否适用于 hasOne 关系,或者是否有更好的方法与适当的条件。
【问题讨论】:
标签: cakephp find relation zero has-one
我相信hasOne 关系在SQL 语句中创建了LEFT JOIN。可以说,为您的查找生成的 SQL 看起来像(假设有更多列):
SELECT User.id, User.name, Profile.id
FROM users AS User
LEFT JOIN profiles AS Profile
ON Profile.user_id = User.id;
您需要做的就是添加另一个 WHERE 子句:WHERE Profile.id IS NULL 用于不匹配的行。因此将您的 Cakephp 代码更改为
$this->User->find('all',array(
'conditions' => array('Profile.id' => 'NULL')))
【讨论】: