根据Laravel 5.1中单击的提交按钮显示不同的错误


Display different errors based on which submit button has been clicked in Laravel 5.1

我希望你们一切顺利,度过一个美好的节日。我想发布一个问题,了解如何根据点击的提交按钮在Laravel 5.1中显示特定表单的错误。这里有一些代码可以更好地解释我要做的事情

<form action="{{ url( '/auth/login' ) }}" id="login" method="post">
    @if (count($errors) > 0)
        <div class="show validation-summary">
            ... display error container only when the login submit button has been clicked
        </div>
    @endif
    <input name="submit" type="submit" value="Login" />
</form>
<form action="{{ url( '/auth/register' ) }}" id="register" method="post">
    @if (count($errors) > 0)
        <div class="show validation-summary">
            ... display error container only when the register submit button has been clicked
        </div>
    @endif
    <input name="submit" type="submit" value="Register" />
</form>

目前,当单击登录或注册提交按钮时,两个验证div都会显示,但我只想显示与提交的表单相关的验证div。

您可以使用命名的错误包。

例如,在您的控制器中,您可以执行以下操作:

$validator = Validator::make(Input::all(), [
    'some_input'        => 'required',
], [
    'some_input.required' => 'The input is required.',
]);
// ...some other code may go here
if($validator->fails())
{
    return redirect()
        ->back()
        ->withInput()
        ->withErrors($validator, 'named_error_bag');
}

要在视图中显示您命名的错误包中的错误,您可以这样做。

@if(!empty($errors->named_error_bag->first('error_name')))
    {{ $errors->named_error_bag->first('error_name') }}
@endif