cakephp线程注释
我对cakephp有点陌生,我想知道为什么我会有这种问题 基本上,我正在用cakephp做一个线程注释。但我的问题是,每次我试图对一条“评论”进行“评论”,它的显示方式就不同了 以下是一个屏幕截图: 我希望它被颠倒,就像所有的子评论都应该发布在最后一行一样。当前,当我添加新注释时,它显示在顶部而不是底部。我希望它变成facebook如何评论他们 以下是我的代码:cakephp线程注释,cakephp,Cakephp,我对cakephp有点陌生,我想知道为什么我会有这种问题 基本上,我正在用cakephp做一个线程注释。但我的问题是,每次我试图对一条“评论”进行“评论”,它的显示方式就不同了 以下是一个屏幕截图: 我希望它被颠倒,就像所有的子评论都应该发布在最后一行一样。当前,当我添加新注释时,它显示在顶部而不是底部。我希望它变成facebook如何评论他们 以下是我的代码: $comments = $this->UserDiscussionComment->find('threaded', a
$comments = $this->UserDiscussionComment->find('threaded', array('conditions' => array('UserDiscussionComment.user_discussion_id' => $slug), 'order' => array('UserDiscussionComment.id DESC', 'UserDiscussionComment.created ASC')));
下面是数据库中的一个示例记录:
我想更改子注释的顺序。我试过“ASC”和“DESC”,但不起作用
提前谢谢
array('UserDiscussionComment.id DESC', 'UserDiscussionComment.created ASC')
我认为错误就在那里
由于UserDiscussionComment.id都是不同的,因此对于UserDiscussionComment.created ASC
,没有什么可订购的
尝试:
您将无法根据的文档以不同的顺序对子项进行排序。我要做的是在您的find调用之后,简单地反转数组:
$comments = $this->UserDiscussionComment->find('threaded', array(
'conditions' => array('UserDiscussionComment.user_discussion_id' => $slug),
'order' => array('UserDiscussionComment.id DESC')
));
for ($i = 0; $i < sizeof($comments); $i++) {
$comments[$i]['children'] = array_reverse($comments[$i]['children']);
}
然后,当我想进行查找时,我可以对父注释和子注释进行不同的排序(注意,我使用的是Containable
行为):
数组('UserDiscussionComment.id DESC','UserDiscussionComment.created ASC')顺便说一句,多线程标记不适合这个问题。您好,谢谢您的回答。但在我应用了你的建议之后,它仍然向我显示了错误的结果:(数组('UserDiscussionComment.parent\u id DESC','UserDiscussionComment.created DESC'是什么?)do?它正确显示子注释,但主注释被反转。父注释从最早显示到最新,这应该是另一种方式…我真的需要您的帮助。提前感谢Then do array('UserDiscussionComment.parent_id ASC','UserDiscussionComment.created DESC')如果你想要其他订单。DESC提供从最早到最新的日期。你好,霍夫!你的解决方案很好!我现在可以对所有内容进行排序。谢谢!@comebal你好,如果有n个回复,如用户A评论和用户B回复,以及用户C回复用户B回复这样的回复。你能给我任何解决方案或建议吗
$comments = $this->UserDiscussionComment->find('threaded', array(
'conditions' => array('UserDiscussionComment.user_discussion_id' => $slug),
'order' => array('UserDiscussionComment.id DESC')
));
for ($i = 0; $i < sizeof($comments); $i++) {
$comments[$i]['children'] = array_reverse($comments[$i]['children']);
}
class Comment extends AppModel {
public $belongsTo = array(
'ParentComment' => array(
'className' => 'Comment',
'foreignKey' => 'parent_id'
),
'User'
);
public $hasMany = array(
'ChildComment' => array(
'className' => 'Comment',
'foreignKey' => 'parent_id'
)
);
}
$comments = $this->Comment->find('all', array(
'order' => 'Comment.id DESC',
'contain' => array(
'ChildComment' => array(
'order' => 'ChildComment.id ASC'
)
)
));