Mar*_*ean 1 cakephp cakephp-2.0 cakephp-model
我建立一个网站,有三种型号:Store
,StoreReview
,和User
.该网站列出商店,用户可以查看商店.因此,我的Store
模型可以有很多StoreReview
行,每StoreReview
行属于User
一行.
我的问题是:在获取所有Store
行时,如何获取相关User
的StoreReview
行?目前我正在使用:
<?php
class StoresController extends AppController {
public function view($slug) {
$stores = $this->Store->find('all');
}
}
Run Code Online (Sandbox Code Playgroud)
但这只返回'StoreReview'行.因为这User
行是另一个更深的层次,我不确定如何获取它; 我已经检查过CakePHP的文档和Googled,但是CakePHP最近重新开始了他们的文档站点,我的Google搜索网站上的示例都没有用.
先感谢您.
有两种方法.您可以增加recursive
属性:
$stores = $this->Store->find('all', array('recursive' => 2));
Run Code Online (Sandbox Code Playgroud)
或使用Containable
行为(我更喜欢这个,因为你可以超过2个级别):
$this->Store->Behaviors->attach('Containable');
$this->Store->contain(array('StoreReview' => array('User')));
$stores = $this->Store->find('all');
$this->Store->Behaviors->detach('Containable');
Run Code Online (Sandbox Code Playgroud)
更多信息: