CakePHP-HABTM查询
CakePHP以什么方式进行此类查询CakePHP-HABTM查询,cakephp,Cakephp,CakePHP以什么方式进行此类查询 SELECT news.* FROM news, users INNER JOIN news_users nu ON nu.user_id = users.id WHERE users.id = $user_id 我有一个链接表news\u users,因此尝试使用类似$news=$this->news->findByUserId($this->User->id)的东西不起作用,因为它查找新闻。用户id 另外,上面的查询有效,我只想缩短脚本。您可以在新
SELECT news.* FROM news, users
INNER JOIN news_users nu ON nu.user_id = users.id
WHERE users.id = $user_id
我有一个链接表news\u users
,因此尝试使用类似$news=$this->news->findByUserId($this->User->id)的东西代码>不起作用,因为它查找新闻。用户id
另外,上面的查询有效,我只想缩短脚本。您可以在新闻模型中声明findByUserId函数:
//put this code in your News model
public function findByUserId($user_id = null)
{
return $this->find('all', array(
'conditions' => array(
'NewsUser.user_id' => $user_id
),
'joins' => array(
array(
'table' => 'news_users',
'alias' => 'NewsUser',
'type' => 'INNER',
'conditions' => array(
'NewsUser.news_id = News.id'
)
)
)
));
}
然后,您可以在新闻控制器中的任何位置使用findByUserId函数
//this code in NewsController
$news = $this->News->findByUserId($this->User->id);
这似乎并不容易:|在模型中使用finderQuery
不可能吗?@Ráplipandrás,可能即使可以,也不会是更容易的解决方案。我改变了我的答案,使它更容易在控制器中使用。谢谢。我很快就会试试。