I have a model A
that has a relationship of type HAS_MANY
with model B
.
B
's attributes are:
id,
user_id,
message,
date,
parent_message_id
I need elements of model B
to be ordered by date (descending), but in case the parent_message_id
is different from null, the date to be taken into consideration should be the date corresponding to parent_message_id
.
Is it possible to customize the criteria used to order the relation?
Ok, i solved this the following way: model A HAS_MANY model B, therefore, i redefined the relationships method to the following:
public function relations()
{
return array(
'messages' => array(self::HAS_MANY, 'WallMessages', 'liga_id',
'condition'=>'specific_post.parent_message_id IS NULL',
'order'=>'specific_post.date DESC',
'alias'=>'specific_post'),
);
}
Therefore, I only compare the date of those messages with no parent id. The downside is that I have to access each post's "child messages"... but well, couldn't find another workaround. Thanks all for your help!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With