我在CakePHP中还很陌生。我有一个具有一对多关系的Blogs和Comments表。在Blogs控制器中,我有以下代码来获取Blog数据和附加的注释。
$blog = $this->Blogs->get($id, contain => ['Comments']);
$this->set(compact('blog'));
我试图通过使用foreach循环填充评论的数据。
foreach ($blog->comments as $comment) :
echo $comment.'<br />';
endforeach;
但是,默认顺序是根据Comments表的ID升序,而我想要实现的是基于Comments.created的DESC顺序,所以当我填充数据时,最上面的应该是最新的创建评论等等。非常感谢您提供任何帮助!
答案 0 :(得分:2)
您可以在包含中提供额外的信息。 https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#sorting-contained-associations
$blog = $this->Blogs->get($id, contain => ['Comments' => ['sort' => ['Comments.created' => 'DESC']]]);
$this->set(compact('blog'));