首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >yii2活动记录查找列不相等

yii2活动记录查找列不相等
EN

Stack Overflow用户
提问于 2014-04-09 20:41:03
回答 5查看 48.5K关注 0票数 23

我使用此代码从db中查找状态为活动、角色为用户的用户。

代码语言:javascript
复制
public static function findByUsername($username)
{
 return static::find(['username' => $username, 'status' => static::STATUS_ACTIVE, 'role'=>'user']);
}

我需要找到一个角色不等于“用户”的用户。我该怎么做呢?

附言:我正在使用YII2

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-04-10 03:44:07

我想提供另一种解决方案,它对我来说更优雅。从Yii 1开始,当我需要检查不相等操作时,我通常使用这种方法。

代码语言:javascript
复制
$models = Book::find()->where('id != :id and type != :type', ['id'=>1, 'type'=>1])->all();
票数 31
EN

Stack Overflow用户

发布于 2015-09-08 15:40:31

您可以像这样传递自定义where子句:

代码语言:javascript
复制
andWhere(['!=', 'field', 'value'])

您的最终函数将如下所示:

代码语言:javascript
复制
public static function findByUsername($username)
{
    return static::find()
        ->where([
            'username' => $username,
            'status' => static::STATUS_ACTIVE
        ])
        ->andWhere(['!=', 'role', 'user'])
        ->all();
}
票数 30
EN

Stack Overflow用户

发布于 2014-04-09 21:23:22

好的,我已经这样做了:

代码语言:javascript
复制
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();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22962869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档