【发布时间】:2013-09-07 02:47:04
【问题描述】:
我遇到了一个非常简单的订购查询问题。我有一个 Post 模型和一个具有 HABTM 关系的 Tag 模型,我正在尝试返回分配给它们的特定标签的所有帖子的列表,按帖子创建日期排序。
$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。如果有什么不同的话。
【问题讨论】:
-
嗨阿比德,我已经查看了 CakePHP 网站上的 HABTM 页面,但没有看到任何关于使用这样的条件排序结果的参考 - 请您指出与我的相关区域查询。
-
只是为了确定:您是否声明标签模型 $actsAs 可包含?
标签: cakephp containable