【问题标题】:Laravel From Request Validaton doesn't show errorsLaravel 表单请求验证不显示错误
【发布时间】:2017-11-07 15:54:04
【问题描述】:

我的 Laravel 框架是 5.4.19

我已按照教程进行操作: http://www.easylaravelbook.com/blog/2015/08/17/creating-and-validating-a-laravel-5-form-the-definitive-guide/

并创建表单请求文件tours2_create_tableRequest.php:

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class tours2_create_tableRequest extends FormRequest
{

public function authorize()
{
    return true;
}

public function rules()
{
    return [
        'doc_fullnumber' => 'unique:tourists'

    ];
}

}

(它测试请求中的“doc_fullnumber”是否在“游客”模型中没有重复)

我已将此代码添加到表单blade.php 文件中:

 @if($errors->count() > 0 )
    <div>
   @foreach ($errors->all() as $error)
      {{ $error }}
   @endforeach
    </div>
 @endif

在我看来,验证工作正常(当“doc_fullnumber”不唯一时,它会将用户重定向回创建表单页面),但它没有传递 $errors 变量。

我浏览了 Stackoverflow 并发现了几个具有相同问题的主题。他们建议将我所有的路线(在 web.php 中)包装在:

Route::group(['middleware' => ['web']], function () {
});

我已经做到了,但它没有帮助......

这里是表单页面,实际上(临时):http://f832ee57.ngrok.io/tours_2/create (“doc_fullnumber”字段是最后一个。您可以在此处添加“2001”以检查验证)。

我在 git 上的项目:https://github.com/Sergey1983/first

感谢任何帮助!

【问题讨论】:

  • 在您的验证中添加表名。我有同样的问题,我用它来修复它 unique:table_name.tourists
  • 谢谢,波德尔。但“游客”实际上是表名。

标签: forms laravel validation error-handling request


【解决方案1】:

要使unique 规则起作用,您需要在 DB 中有 `'doc_fullnumber' 字段,或者您需要指定自定义名称字段:

'doc_fullnumber' => 'unique:tourists,custom_fullnumber_field'

【讨论】:

    猜你喜欢
    • 2020-04-28
    • 2016-10-21
    • 2020-01-17
    • 2021-04-10
    • 2018-04-19
    • 1970-01-01
    • 2017-07-16
    • 2016-05-22
    • 2016-09-02
    相关资源
    最近更新 更多