function - Laravel 控制器验证请求不存在
问题描述
我正在使用 Laravel 8 验证,我正在尝试做的是验证一个带有一些输入名称的表单,它是表 Sizes 列“名称”所独有的,它还取决于另一个列speciesId,即来自 $request-> 的值物种编号。
Controller中的功能是这样的
public function storeSize(Request $request)
{
$validated = $request->validate(
[
'name' => [
'required', Rule::unique('sizes')->where(function ($query) {
return $query->where('speciesId', $request->speciesId);
})
],
'speciesId' => 'required'
]
);
}
已经添加使用 Illuminate\Http\Request;并使用 Illuminate\Validation\Rule;但仍然得到“ErrorException 未定义变量:请求”。
当我尝试 var_dump($request) 或 echo $request->speciesID 时,变量和值存在。
我的问题是,为什么验证函数不能识别 Request 变量?
解决方案
发生错误是因为您的function
通话内部$request
不可用。use $request
您需要通过添加来使其可用function ($query)
:
$validated = $request->validate([
'name' => [
'required', Rule::unique('sizes')->where(function ($query) use ($request) {
return $query->where('speciesId', $request->speciesId);
})
],
'speciesId' => 'required'
]);
推荐阅读
- reactjs - 尝试递归呈现评论 ReactJs
- python - 尝试用任意曲线拟合 Python 中的多个 Moyal 函数
- javascript - history.back() 在同一域上导航时不起作用?
- c# - C# dotnet SslStream 信任库
- node.js - 在 Vue 应用程序中管理 passportjs Google-Strategy
- ios - 带有 UICollectionViewCompositionalLayout 的单行水平 UICollectionView 的不完整删除动画
- coq - 如何正式写声明?
- python - 如何将列表转换为嵌套的 json
- docker - Docker 容器卡在(健康:启动)
- python - 返回 Numpy 数组的二项分布