Laravel 4 Eloquent Dynamic Where Clause

时间:2013-09-22 05:15:25

标签: php sql laravel-4 where-clause eloquent

我最近在Laravel 4 Eloquent中了解了动态where子句(我认为这就是所谓的),这使得像User::where('first_name', 'Jon')->get()这样的子句变得更好User::whereFirstName('Jon')->get()。这有多灵活?

我可以举例如下

  • 多列User::whereFirstNameOrLastName('Jon', 'Smith')->get();
  • 使用=之外的运算符,例如>=LIKE

1 个答案:

答案 0 :(得分:5)

您可以使用Query Scope来实现您的目标。

一个简单的例子:

public function scopeFirstOrLastName($query, $first, $last)
{
    return $query->where('first_name', 'LIKE', '%' . $first . '%')
                 ->where('last_name', 'LIKE', '%' . $last . '%');
}

使用它:

$user->firstOrLastName('John', 'Doe')->get();

您可以根据需要对其进行命名,并且可以在其中使用任何运算符(或任何查询构建器操作)。