我的模型的相关内容如下:
Post BELONGS_TO Parent
Parent HAS_MANY ParentAdmin
现在,如果符合帖子的属性值,我希望找到所有帖子的所有家长管理员。等效的sql查询是:
SELECT parent_admins.* FROM posts
LEFT JOIN parents AS Parent ON Parent.id = posts.target_id
LEFT JOIN parent_admins ON parent_admins.parent_id = Parent.id
WHERE posts.admin_notification = 0 AND Parent.maxtime > posts.created
假设模型在cakephp中相应地链接到recursive = 2
,查找查询中的条件数组是什么?
答案 0 :(得分:2)
你们都可以使用bindModel& unbindModel方法可以获得您想要的确切查询,也可以使用Containable
behavior。
有关如何使用CakePHP动态创建和销毁关联的更多信息:http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-fly
你需要这一系列条件:
$conditions = array(
'Post.admin_notification' => 0,
'Parent.maxtime >' => 'Post.created'
);
答案 1 :(得分:0)
根据您的询问: -
$conditions=array(
'posts.admin_notification'=>0,
'Parent.maxtime >'=>'posts.created'
);
答案 2 :(得分:0)
如果您的查询完成了这项工作:
Inside PostsController:
$query = "SELECT parent_admins.* FROM posts
LEFT JOIN parents AS Parent ON Parent.id = posts.target_id
LEFT JOIN parent_admins ON parent_admins.parent_id = Parent.id
WHERE posts.admin_notification = 0 AND Parent.maxtime > posts.created"
$result = $this->Posts->query($query);
$debug($result);