我使用CakePHP而且我不知道如何连接两个表中的数据。
这是我的表数据
id,用户名,密码 - 等等
id,title,text,author
现在我有控制器,我有行动从表新闻获取最新消息
$this->set('n_news', $this->News->find('all', array('limit' => 10,'order' => array('News.id DESC'))));
现在我有一个看起来像这样的数组
array(
(int) 0 => array(
'News' => array(
'id' => '1',
'title' => 'test',
'text' => 'test #1',
'author' => '1',
'date' => '2014-09-25 22:56:55'
)
)
)
现在我想显示作者的用户名(ID为1)而不是id。我怎样才能安全有效地做到这一点?
如果有人能帮助我,那真是棒极了。这对我未来创建应用程序的计划有很大帮助:)
提前致谢!
答案 0 :(得分:1)
使用联接来关联这些表:JOIN TABLES
$joins = array(
array(
'table' => 'users',
'alias' => 'User',
'type' => 'INNER',
'conditions' => array('News.auther = User.id'
)
);
$allnews = $this->News->find('all', array('fields'=>array('News.*','User.username as AutherName'),'joins' => $joins,'limit' => 10,'order' => array('News.id DESC')));
$this->set('n_news',$allnews);