Laravel在表单提交之前显示错误消息

时间:2017-06-18 19:42:53

标签: php laravel error-handling laravel-validation

在我的上一个问题中,我正在寻求帮助,在错误填写表单后显示单个错误消息,而不是每个错误输入的错误。他们很有帮助,我收到了这段代码:

          @if ($errors)
              <span class='help-block'>
                  <strong>{{ "There are errors" }}</strong>
              </span>
          @endif

,第二个答案是

 @if (!empty($errors))
 <span class='help-block'>
     <strong>{{ "Some input field is not properly filled" }}</strong>
 </span>
 @endif

我认为只有在提交表格之后才会显示上述内容,如果Laravel发现任何错误。问题是它始终显示错误消息,如下面的截图: enter image description here 有谁知道解决方案?非常感谢。

3 个答案:

答案 0 :(得分:1)

因此,如果我理解正确,您只想在提交表单后显示成功或错误消息。

如果是这种情况应该起作用:

您需要在控制器功能中添加/更改以下内容:

$request->session()->flash('success', 'Success!');
return redirect()->route("yourstuff.index");

在您的blade.php中,您将使用此消息返回该会话

    @if (session('success'))
        <div class="alert alert-success">
            {{ session('success') }}
        </div>
    @endif

    @if (session('error'))
        <div class="alert alert-success">
            {{ session('error') }}
        </div>
    @endif

答案 1 :(得分:1)

始终设置

$errors变量。它是message bag,可能包含也可能不包含消息。

您可以这样检查:

 @if ($errors->count() > 0)
 <span class='help-block'>
     <strong>{{ "Some input field is not properly filled" }}</strong>
 </span>
 @endif

@if (!$errors->isEmpty())也应该有用。

答案 2 :(得分:1)

问题解决了,我收到了两个很好的答案,但我选择了更简单的答案。 为了返回单个错误,我使用了用户提出的代码:

  

DEVK

    @if ($errors->count() > 0)
 <span class='help-block'>
     <strong>{{ "Some input field is not properly filled" }}</strong>
 </span>
    @endif

效果很好。我要感谢用户:

  

utdev

对于此代码:

您需要在控制器功能中添加/更改以下内容:

$request->session()->flash('success', 'Success!');
return redirect()->route("yourstuff.index");

在您的blade.php中,您将使用此消息返回该会话

@if (session('success'))
    <div class="alert alert-success">
        {{ session('success') }}
    </div>
@endif

@if (session('error'))
    <div class="alert alert-success">
        {{ session('error') }}
    </div>
@endif

我将在项目的其他部分使用您提出的代码。 谢谢!