php - 我需要帮助来理解 WHEN 子句
问题描述
我正在使用 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', []);
解决方案
只要变量 role 等于 true,这个查询就会执行:
return $query->where('role_id', $role);
就您的第二个问题而言,如果未填写请求参数“字段”,则默认值设置为:[]。
另一个例子:
$foo = $request->input('test', 69);
如果请求参数 test 未填写,则参数 foo 将为 69。
推荐阅读
- c# - 无法将 system.threading.tasks.task 转换为 system.collections.generic.list
- c++ - C++ 中更快的映射操作
- ios - 如何在 iOS 上处理仅限支持者的订阅应用程序?
- node.js - node.js 使用数组查询后续事务
- javascript - React Native 中的样式化组件 - 不接收道具
- next.js - 如果链接是预取的,为什么打开一个页面需要这么长时间?
- javascript - 在 Ionic 解决方案中获取 Javascript 中的元素的语法
- linkedin - 检索 Linkedin Stories 的可视化指标
- python - Pandas:从二维数据中提取最大值
- pandas - 按 Pandas 中另一行的值分组