laravel相当于mysql

nukf8bse  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(361)

我有两张table。我想得到所有用户和他们的详细资料谁是活跃/禁止。
什么是拉雷维尔雄辩相当于这个问题。

'select * from client_details where user_id IN (select user_id from client_logins where is_active='.$active.')'

表:client\u logins model clientlogin

+---------+---------+--------------+-------------+-----------+
| id      | user_id |  username    | password    | is_active |
+---------+---------+--------------+-------------+-----------+

表:客户端详细信息模型clientdetail

+---------+------+-------+------------------+
| user_id | name | email | mobile |  address|
+---------+------+-------+------------------+
qni6mghb

qni6mghb1#

使用查询生成器,您可以将其编写为

$clients=DB::table('client_details as c')
                ->select('c.*')
                ->join('client_logins as l', 'c.user_id', '=', 'l.user_id')
                ->where('l.is_active', '=', $active)
                ->get()
;

或者如果你已经定义了 has 的关系 ClientDetails 您可以使用的模型 whereHas 滤波器

class ClientDetails extends Model
{

    public function client_logins()
    {
        return $this->hasMany('App\ClientLogins', 'user_id', 'user_id');
    }
}

$clients = ClientDetails::whereHas('client_logins', function ($query) use ($active)  {
    $query->where('is_active', '=', $active);
})->get();

相关问题