WHERE
$query = User::find()->andWhere(['age' => 19])->andWhere(['like', 'name', 'test']);
echo $query->createCommand()->getRawSql();
where条件:
字符串格式,例如:'status=1'
哈希格式,例如: ['status' => 1, 'type' => 2]
操作符格式,例如:['like', 'name', 'test']
对象格式,例如:new LikeCondition('name', 'LIKE', 'test')
不等于
->andWhere(['<>','cancel_date', 1]);
过滤条件
当 WHERE
条件来自于用户的输入时,通常需要忽略用户输入的空值
// $username 和 $email 来自于用户的输入
$query->filterWhere([
'username' => $username,
'email' => $email,
]);
filterWhere() 和 where() 唯一的不同就在于,前者 将忽略在条件当中的hash format的空值。所以如果 $email
为空而 $username
不为空,那么上面的代码最终将生产如下 SQL ...WHERE username=:username
。
ALL
$shop_info = ShopInfo::find()->where(['