如何为此MySQL查询创建ActiveRecord查询?

时间:2015-03-28 16:19:09

标签: php mysql activerecord yii2

我有MySQL查询,我怎么用ActiveRecord写这个?

SELECT *
FROM `sel_posts`
WHERE `login_id` = 22 OR 23 OR 24 ... (this ids from array $ifollow)
ORDER BY `datetime` DESC
LIMIT 0 , 20

1 个答案:

答案 0 :(得分:0)

首先,最好将OR替换为IN部分中的WHERE

假设模型名为SelPost,您可以使用ActiveQuery来完成此操作:

$models = SelPost::find()
    ->where(['login_id' => $ifollow])
    ->orderBy(['datetime' => SORT_DESC])
    ->limit(20)
    ->all();

where非常聪明,可以在in数组的情况下自动添加$ifollow运算符。

官方文档: