我认为我有多种形式。当我在一种表单上收到验证错误时,它将在所有表单上显示验证错误消息。我该如何更新,以便验证错误仅显示在导致验证错误的表单上?谢谢。
查看:
<form method="post" action="/post/comment/{{ $post->alt_id }}" class="form-inline">
<input type="text" class="form-control{{ $errors->has('comment') ? ' is-invalid' : '' }}" id="comment" name="comment" placeholder="Add a comment...">
@if ($errors->has('comment'))
<p class="invalid-feedback">{{ $errors->first('comment') }}</p>
@endif
<button type="submit" class="btn btn-primary">Submit</button>
<input type="hidden" name="_token" value="{{ Session::token() }}"/>
</form>
答案 0 :(得分:0)
您可以使用named error bags:
return redirect('previous_page')
->withErrors($validator, 'first_form');
然后您可以从$errors
变量访问刀片中的命名错误包:
{{ $errors->first_form->first('comment') }}
如果您使用的是Laravel> = 6.10,则validateWithBag
方法可能会帮助您:
$request->validateWithBag('first_form', [
'title' => ['required', 'unique:posts', 'max:255'],
'comment' => ['required'],
]);
使用@error指令,第一个arg是一个属性,第二个arg是已命名的bag:
<input
id="comment"
type="text"
class="@error('comment', 'first_form') is-invalid @enderror"
>
@error('comment', 'first_form')
<div class="alert alert-danger">{{ $message }}</div>
@enderror