Cakephp - намиране на нишка

имам таблица с туитове, която съхранява туитове и отговорите им като тази

tweet(id, parent_id, tweet_message, час)

където parent_id е собствен идентификатор, ако е туит, и е от родителски идентификатор, ако е отговор. как да направите намиране, за да извадите туитове, където id = parent_id

пример:

tweet(1, 1, 'Казвам се Harsha', 'time') parent_id = id, тъй като това е туит, а не отговор tweet(2, 1, 'Hello Harsha', 'time') parent_id = 1, което казва, че е отговорете на туита с id = 1


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


Отговори (2)


Това теоретично трябва да работи. Погледнете регистрационния файл на SQL Debug, за да разберете какво прави, ако има някакви грешки

$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, за да търсите всички различни от 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