我需要帮助来了解WHEN子句

时间:2020-08-14 14:39:14

标签: php laravel

我正在使用Laravel进行一个小项目,我尽力了解Laravel文档以创建一个不错的解决方案,但是这次我发现有些难以理解的WHEN子句

有人可以给我一个例子给我解释一下这段代码吗?

    $role = $request->input('role');

$users = DB::table('users')
                ->when($role, function ($query, $role) {
                    return $query->where('role_id', $role);
                })
                ->get();

文档:https://laravel.com/docs/7.x/queries#conditional-clauses

我也想知道第二个参数[] in the input function

的含义
request()->input('field', []);

1 个答案:

答案 0 :(得分:1)

只要变量角色等于true,该查询就会执行:

return $query->where('role_id', $role);

关于第二个问题,如果未填写请求参数“字段”,则默认值设置为:[]。

另一个例子:

$foo = $request->input('test', 69);

如果未填写请求参数测试,则参数foo将为69。