![](/img/trans.png)
[英]How to get other field value from Laravel FormRequest Validation
[英]How to get other field values in Laravel custom validation
我正在使用自定義驗證規則來驗證我從文件中讀取的一些數據。 規則如下:
$this->rules = [
'file_data' => 'required|array',
'file_data.*.id' => 'required',
'file_data.*.name' => 'required',
'file_data.*.code' => 'required|code_exists'
];
並應用這些規則,例如
$validationResult = validator($data, $this->rules, $customMessageArray);
在code_exists
,我需要id
的值來運行驗證。 我試圖通過$parameters
傳遞值,比如code_exists:id
,但它給了我參數數組中的字符串id
。 如何傳遞實際值?
你應該得到數組的鍵,然后得到id。 像那樣:
'file_data.*.code' => [
'required',
function($attribute, $value, $fail) use ($data) {
$index = explode('.', $attribute)[1];
$id = data_get($data, "file_data.$index.id");
$isExists = DB::table('table_name')->whereId($id)->whereCode($value)->exists();
if (!$isExists) {
return $fail(__('validation.exists', ['attribute' => $attribute]));
}
}
],
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.