0

如何在 cakephp 中实现以下结果:

在我的应用程序中,主题与类别相关,类别与城市相关,城市最终与州相关

换句话说:
主题属于类别,类别属于城市,城市属于州..

现在在主题控制器的索引操作中,我想找出所有主题以及城市和州。

我怎样才能做到这一点。

我可以使用自定义查询($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) 会降低性能并且不会产生状态信息。

我该如何解决这个问题?

请帮忙

谢谢

4

2 回答 2

1

好吧,你可以做几件事:

  1. recursive选项设置为 3(由于您已经提到的原因,不推荐)。
  2. 使用Containable行为。我认为,我链接的文档提供了一套非常可靠的使用说明。

不幸的是,我无法谈论Containable行为对分页的影响。

于 2010-05-27T11:42:54.070 回答
1

使用可包含行为时,无需设置递归级别。它将由 cakephp 自动调整。

于 2010-05-30T15:35:44.317 回答