数据库查询构造器中使用闭包时,为什么有时候需要return,有时候又不需要return
在学习文档的时候,看到数据库查询构造器使用闭包的情况下,有时候需要return,有时候又不需要return,请问具体是为什么?
闭包不需要return的情况:
$users = DB::table('users')
->where('name', '=', 'John')
->where(function ($query) {
$query->where('votes', '>', 100)
->orWhere('title', '=', 'Admin');
})
->get();
闭包需要return的情况:
$role = $request->input('role');
$users = DB::table('users')
->when($role, function ($query, $role) {
return $query->where('role_id', $role);
})
->get();
推荐文章: