Laravel Eloquent:提取所有以提供的字符串列表开头的条目

waw*_*los 3 laravel eloquent laravel-5

以下请求从用户表中提取所有条目,其中 name=Albert 或 name=Alberto 或 name=Ana。

$users = DB::table('users')
    ->whereIn('name', ['Albert', 'Alberto', 'Ana'])
    ->get();
Run Code Online (Sandbox Code Playgroud)

是否有可能调整此请求以提取以下名称开头的所有条目?

Qui*_*ger 5

在基本where函数上使用 like 运算符:

$users = DB::table('users')
            ->where('name', 'like', 'T%')
            ->get();
Run Code Online (Sandbox Code Playgroud)

来源

编辑: 基于此答案(但已简化),这里有一个简单的闭包可以解决您的问题:

$queryStr = ['Albert', 'Alberto', 'Ana'];
$users = DB::Table('users')            
    ->where(function ($query) use ($queryStr) {
         foreach($queryStr as $q){
            $query->orwhere('name', 'like',  $q . '%');
         }      
    })->get();
Run Code Online (Sandbox Code Playgroud)