如何在 Laravel 5 中链接查询

Fok*_*est 2 activerecord laravel

我曾经在代码 Igniter 中做过类似的事情

 $this->db->select('*');
 $this->db->from($this::DB_TABLE);
 if ($role == "manager") {
    $this->db->where('is_manager',1);
 }
 if ($role == "staff") {
     $this->db->where('is_staff',1);
 }
 $this->db->where('is_active', 1);
 $this->db->order_by('last_name', 'asc');
 $user_set = $this->db->get();
 return $user_set;
Run Code Online (Sandbox Code Playgroud)

我如何在 Laravel 5 中编写类似的查询。我是 Laravel 的新手。

jco*_*rry 5

如果您想有条件地更改查询参数,如下所示:

$query = Model::select('*')
if ($role == "manager") {
    $query = $query->where('is_manager',1);
}
if ($role == "staff") {
    $query = $query->where('is_staff',1);
}
$user_set = $query->where('is_active', 1)->orderBy('last_name', 'asc')->get();

return $user_set;
Run Code Online (Sandbox Code Playgroud)

但我认为这样会更简洁(完全未经测试,但我认为这会起作用):

return  Model::select('*')
    ->where('is_manager', $role == 'manager' ? 1 : 0)
    ->where('is_staff', $role == 'staff' ? 1 : 0)
    ->where('is_active', 1)
    ->orderBy('last_name', 'ASC')
    ->get();
Run Code Online (Sandbox Code Playgroud)