Laravel nestedwhere解析错误:语法错误,意外的'}'

时间:2018-12-21 10:43:05

标签: eloquent laravel-5.3

Symfony \ Component \ Debug \ Exception \ FatalThrowableError:解析错误:语法错误,意外的'}'

我遵循了此资源,在这里嵌套了How to combine WHERE clauses in Eloquent,但是在运行代码时遇到以下错误。中断的行是回调函数的大括号,这是怎么回事?

$providers = DB::table('users')
->where('verified', '=', 1)
->where('status', '=', 1)
->where(function ($query) use ($search) {
    $query->where(DB::raw('lower(name)'), 'LIKE', "%".strtolower($search)."%")
    ->orWhere(DB::raw('lower(username)'), 'LIKE', "%".strtolower($search)."%")
})
->where('city', '=', $t)
->take($limit)
->toSql();

1 个答案:

答案 0 :(得分:1)

内部;之后缺少$query。我认为这可能是这样的:

->where(function ($query) use ($search) {
    $query->where(DB::raw('lower(name)'), 'LIKE', "%".strtolower($search)."%")
    ->orWhere(DB::raw('lower(username)'), 'LIKE', "%".strtolower($search)."%");
})

代码最后需要分号,因为它是函数中的行/语句。此函数是回调没关系。