我正在使用 Laravel 8 驗證,我想要做的是驗證具有某些輸入名稱的表單,該表單是表 Sizes 列“name”所獨有的,其中它還取決于來自 $request-> 的值的另一列speciesId物種 ID。
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 Undefined variable: request”。
當我嘗試 var_dump($request) 或 echo $request->speciesID 時,變數和值存在。
我的問題是,為什么驗證函式不能識別 Request 變數?
uj5u.com熱心網友回復:
發生錯誤是因為您的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'
]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358014.html
上一篇:多函式呼叫?
