我在一個陣列的刀片視圖中有兩個輸入(每個輸入用于不同的語言),我像這樣構建:
@foreach ($langs as $lang)
<input
type="text"
class="form-control @error('title.{{$lang->isocode}}') is-invalid @enderror"
name="title[{{$lang->isocode}}]"
id="title[{{$lang->idioma->codi}}]"
value="{{ $lang->title }}"
>
@endforeach
我的自定義表單請求驗證是這樣的:
public function rules()
{
return [
'title.*' => ['required', 'string', 'max:100'],
];
}
public function messages()
{
return [
'title.*.required' => 'Title is required',
'title.*.string' => 'Title must be a string',
'title.*.max' => 'Title is too long',
];
}
它作業正常。事實上,如果 I @dump($errors),它顯示:
Illuminate\Support\ViewErrorBag {#353 ▼
#bags: array:1 [▼
"default" => Illuminate\Support\MessageBag {#354 ▼
#messages: array:1 [▼
"title.ca" => array:1 [▼
0 => "Title is too long"
]
]
#format: ":message"
}
]
}
但問題是,如果驗證失敗,則不會在輸入 html標記中應用.is-invalid該類。我認為因為是不正確的。@error('title.{{$lang->isocode}}')
我做錯了什么?
uj5u.com熱心網友回復:
=>title field validation you can use in request method so remove this .{{$lang->isocode}} that is not correct.@error('title') print your error message.
class="form-control @error('title') is-invalid @enderror"
@error('title')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
uj5u.com熱心網友回復:
我認為您沒有提供錯誤包索引的問題:
@foreach ($langs as $k=>$lang)
<input
type="text"
class="form-control {{$errors->first('title.'.$k.'.'.$lang->isocode)?'is-invalid':''}}"
name="title[{{$lang->isocode}}]"
id="title[{{$lang->idioma->codi}}]"
value="{{ $lang->title }}"
>
@endforeach
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386361.html
