我使用此代码从db中查找状态为活动、角色为用户的用户。
public static function findByUsername($username)
{
return static::find(['username' => $username, 'status' => static::STATUS_ACTIVE, 'role'=>'user']);
}
我需要找到一个角色不等于“用户”的用户。我该怎么做呢?
附言:我正在使用YII2
发布于 2014-04-10 03:44:07
我想提供另一种解决方案,它对我来说更优雅。从Yii 1开始,当我需要检查不相等操作时,我通常使用这种方法。
$models = Book::find()->where('id != :id and type != :type', ['id'=>1, 'type'=>1])->all();
发布于 2015-09-08 15:40:31
您可以像这样传递自定义where子句:
andWhere(['!=', 'field', 'value'])
您的最终函数将如下所示:
public static function findByUsername($username)
{
return static::find()
->where([
'username' => $username,
'status' => static::STATUS_ACTIVE
])
->andWhere(['!=', 'role', 'user'])
->all();
}
发布于 2014-04-09 21:23:22
好的,我已经这样做了:
public static function findByUsername($username)
{
$sql="select * from tbl_user where username=:uname and status=:st and role != 'user'";
return static::findBySql($sql,[":uname"=>$username,":st"=>static::STATUS_ACTIVE])->one();
}
https://stackoverflow.com/questions/22962869
复制相似问题