这是我的模特:
User hasmany Photos
Photo belongto User
真的很简单一对多的关系。
在控制器中,我想查看一个用户的所有照片。
$this->User->id = $id
$this->User->Photos->read()
那不行,我知道如果我使用
$cond=array(
'conditions' => array('UserId =' => $id),
'recursive' => -1
);
$relationsFrom = $this->User->Photos->find('all', $cond);
我可以在不使用条件查找的情况下执行此查询吗? 当我链接模型时,我给出了外键。我为什么要再写一次? 我记得在Ruby on Rails User.Photos上给了我用户的所有照片。
由于
答案 0 :(得分:1)
为什么不使用Containable
行为?它将以您想要的方式为您选择相关模型。它将根据您的关系选择相关字段
答案 1 :(得分:0)
我可以告诉你它为什么会这样,但不是为什么设计就像那样工作:
对象$this->User->Photos
是Photo
模型类的一个实例,它没有对引用它的User
模型的特殊引用。您可以使用$this->User->Photos
,就像使用new Photo
一样。
CakePHP的数据库层围绕将编码为数组的查询,将其转换为SQL,并将结果作为数据数组返回的方法。它不像一些ORM那样构建查询对象。