CakePHP:在远程相关模型中查找信息

时间:2011-03-30 03:55:10

标签: mysql cakephp has-and-belongs-to-many table-relationships

我有一个新闻模型,它与艺术家模型有HABTM关系,而艺术家又有很多参与者。

如果我想找到与当前新闻项目相关的所有巡回演出,那么对于CakePHP来说,有效的方法是什么?

这是我到目前为止所拥有的;我想知道(a)它是否应该起作用,以及(b)是否有更简洁的写作方式:

    $relatedartists = $this->News->ArtistsNews->find('list', array(
        'conditions'=>array('ArtistsNews.news_id' => $id),
        'fields'=>array('artist_id')
    ));
    $livedates = $this->News->Artists->Tour->find('all', array(
        'conditions'=>array('Tour.artist_id'=> $relatedartists, 
            'date >= ' . time()),
        'order'=>'date ASC'
    ));

1 个答案:

答案 0 :(得分:0)

你所拥有的是非常好的。我总是喜欢使用多个查询而不是使用创建临时表的大量连接。它可以稍微降低性能。

你也可以尝试类似下面的内容

$opts = array(
  'conditions' => array(
     'ArtistsNews.news_id' => $id
   )
);
$this->News->Artists->recursive = 2;
$this->News->Artists->find('all', $opts);

此查询之类的内容也可以满足您的需求(未检查错误)

相关问题