如何在cakephp中实现以下结果:
在我的应用程序中,主题与类别相关,类别与城市相关,城市最终与州相关
换句话说:现在在Topic控制器的索引操作中,我想找出所有主题,它是城市和州。
我该怎么办呢。
我可以使用自定义查询($ this-> Model-> query()函数)轻松完成此操作,但之后我将面临分页困难。
我试过这样做
function index()
{
$this->Topic->recursive = 0;
$topics = $this->paginate();
for($i=0; $i<count($topics);$i++)
{
$topics[$i]['City'] = $this->Topic->Category->City->find('all', array('conditions' => array('City.id' => $topics[$i]['Category']['city_id'])));
}
$this->set(compact('topics'));
}
我采用的方法不是很好(在循环中运行查询)
使用递归属性并将其设置为最高值(2)会降低性能,并且不会产生状态信息。
我该如何解决这个问题?
请帮忙
由于
答案 0 :(得分:1)
嗯,你可以做几件事:
recursive
选项设置为3(由于您已经提及的原因,不推荐使用此选项。)Containable
行为。我认为,我链接的文档提供了一套非常可靠的使用说明。不幸的是,我无法谈论Containable
行为对分页的影响。
答案 1 :(得分:1)
使用可包含行为时,无需设置递归级别。它将由cakephp自动调整。