Cakephp - найти тему

у меня есть таблица твитов, в которой хранятся твиты и их ответы, подобные этому

твит(id, parent_id, tweet_message, время)

где parent_id — это собственный идентификатор, если это твит, и родительский идентификатор, если это ответ. как сделать находку чтобы вытаскивать твиты где id=parent_id

пример:

tweet(1, 1, 'Меня зовут Харша', 'время') parent_id = id, поскольку это твит, а не ответ tweet(2, 1, 'Привет, Харша', 'время') parent_id = 1, что говорит о его ответить на твит с id = 1


person Harsha M V    schedule 15.10.2010    source источник


Ответы (2)


Теоретически это должно работать. Посмотрите журнал отладки SQL, чтобы узнать, что он делает, если есть какие-либо ошибки.

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

Или, если вы ищете конкретный идентификатор, вы можете сделать

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

вы можете использовать оператор MySQL <> not для поиска всех твитов без полномочий root

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

or

'Tweet.id <> = Tweet.parent_id'
person Yarek T    schedule 15.10.2010
comment
благодаря. первое было то, что я пытался. я делал это так $conditions = array('Tweet.id' = 'Tweet.parent_id'); - person Harsha M V; 16.10.2010
comment
теперь для ответов, как я могу сделать это наоборот, где «Tweet.id не равен Tweet.parent_id» - person Harsha M V; 16.10.2010
comment
Однако вам следует рассмотреть возможность использования поведения дерева, как это было предложено Ником. Поведение модели Cake весьма полезно, если ваша модель усложняется. - person Yarek T; 17.10.2010

Почему бы вам не использовать поведение дерева?

Вероятно, это, предложенное Yarek T, будет работать, но только для одного уровня.

person Nik Chankov    schedule 15.10.2010