Php 我需要一个帮助来理解WHEN子句
我正在使用Laravel进行一个小项目,我尽力理解Laravel文档以创建一个好的解决方案,但这次我发现一些难以理解的WHEN子句 有人能给我举个例子来解释这段代码吗Php 我需要一个帮助来理解WHEN子句,php,laravel,Php,Laravel,我正在使用Laravel进行一个小项目,我尽力理解Laravel文档以创建一个好的解决方案,但这次我发现一些难以理解的WHEN子句 有人能给我举个例子来解释这段代码吗 $role = $request->input('role'); $users = DB::table('users') ->when($role, function ($query, $role) { return $query->
$role = $request->input('role');
$users = DB::table('users')
->when($role, function ($query, $role) {
return $query->where('role_id', $role);
})
->get();
文件:
另外,我想知道输入函数中第二个参数[]代表什么
request()->input('field', []);
只要变量role等于true,就会执行此查询:
return $query->where('role_id', $role);
关于第二个问题,如果未填写请求参数“字段”,则默认值集为:[]
另一个例子:
$foo = $request->input('test', 69);
如果没有填写请求参数测试,参数foo将为69。文档中说:“when方法仅在第一个参数为true时执行给定的闭包。如果第一个参数为false,则闭包将不会执行。”。我似乎很清楚这一点。在这种情况下,如果将$role
计算为true
,则其中的将添加到查询中。