Cakephp - 找到线程

时间:2010-10-15 20:30:11

标签: cakephp model find cakephp-1.3

我有一个推文表,存储推文及其回复

推文(id,parent_id,tweet_message,时间)

其中,如果是一条推文,则parent_id是一个自我ID,如果是一个回复,则为父ID。如何做一个find来拉出id = parent_id

的推文

示例:

推特(1,1,'我的名字是Harsha','时间')parent_id = id因为它的推文而不是回复 tweet(2,1,'Hello Harsha','time')parent_id = 1告诉它对id = 1的推文的回复

2 个答案:

答案 0 :(得分:3)

为什么不使用Tree behaviour

可能Yarek T提出的这个建议只能用于一个级别。

答案 1 :(得分:1)

理论上这应该有效。查看SQL调试日志,了解有任何错误时的操作

$conditions = array(
    'Tweet.id = Tweet.parent_id'
    );
$tweets = $Tweet->find('all', $conditions);

或者,如果您正在寻找特定ID,您可以

$conditions = array(
    'Tweet.id' => 1,
    'Tweet.parent_id' => 1
    );
$tweets = $Tweet->find('all', $conditions);

您可以使用MySQL <> not运算符来搜索所有非根推文

$conditions = array(
    'Tweet.id' => 1,
    'Tweet.parent_id <>' => 1
    );
$tweets = $Tweet->find('all', $conditions);

'Tweet.id <> = Tweet.parent_id'