我遇到了一个非常简单的订购查询的问题。我有一个Post
模型和一个Tag
具有 HABTM 关系的模型,并且正在尝试返回所有帖子的列表,这些帖子具有分配给它们的特定标签,按帖子创建日期排序。
$this->set('data', $this->Post->Tag->find('all', array(
'conditions' => array('Tag.id' => 1),
'contain' => array('Post' => array(
'order' => 'Post.created_date desc'
))
)));
虽然这会返回帖子列表,但它不是按日期排序的。
启用调试后,似乎正在使用以下查询:
SELECT `Post`.`id`, `Post`.`title`, `Post`.`created_date`, `PostsTag`.`post_id`, `PostsTag`.`tag_id`
FROM `database`.`posts` AS `Post`
JOIN `database`.`posts_tags` AS `PostsTag` ON (`PotsTag`.`tag_id` = 1 AND `PostsTag`.`post_id` = `Post`.`id`)
帖子模型的代码:
class Post extends AppModel {
public $name = 'Post';
public $hasAndBelongsToMany = array('Tag');
}
标签模型的代码:
class Tag extends AppModel {
public $name = 'Tag';
public $hasAndBelongsToMany = array('Post');
}
对此问题的任何帮助将不胜感激 - 我使用的是 CakePHP 2.1。如果它有什么不同。