php - Laravel 5.2 验证错误——错误包为空

标签 php validation laravel laravel-5.2

我有一个运行 Laravel 5.2(Laravel 框架版本 5.2.39)的新站点。注意:路由文件未使用不再需要的 web 中间件组,它可能会导致此问题。

我对 ContactControllerstore 方法进行了简单验证:

    $this->validate($request, [
        'ContactFirst' => 'required|max:25',
        'ContactLast' => 'required|max:25',
        'ContactRole' => 'required|max:25',
        'ContactEmail' => 'email|max:255',
        'ContactPhone' => 'max:255',
    ]);

当我故意使验证失败时,网站会重定向回表单,但错误包是空的,因此不会提供任何错误信息。

在表单 View (resources/contacts/new.blade.php) 中,我将文档中的以下代码和转储放在一起:

{{var_dump($errors)}}
@if (count($errors) > 0)
<div class="alert alert-danger">
    <ul>
        @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
</div>
@endif

页面(如我所说)重定向回表单并填充输入。但是 $errors 是空的,没有打印任何消息:

object(Illuminate\Support\ViewErrorBag)[285]
protected 'bags' => 
array (size=0)
  empty

最佳答案

实际上我不知道你的代码是否可行,因为没有确切的代码表明它会返回错误。

我确实使用 $validator->fails() 进行验证检查。

检查这个例子:

$validator = Validator::make($request->all(), [
    'ContactFirst' => 'required|max:25',
    'ContactLast' => 'required|max:25',
    'ContactRole' => 'required|max:25',
    'ContactEmail' => 'email|max:255',
    'ContactPhone' => 'max:255',
]);

if ($validator->fails()) {
    return redirect()->back()->withErrors($validator)->withInput();
}




但我确实建议您创建扩展 Request 类的 ContactFormRequest 类,并将其放入存储参数中(屏幕截图:http://joxi.ru/eAO55BF4glwRmo):

<?php namespace App\Http\Requests;   

class ContactFormRequest extends Request {

    public function rules() {
        return [
            'ContactFirst' => 'required|max:25',
            'ContactLast' => 'required|max:25',
            'ContactRole' => 'required|max:25',
            'ContactEmail' => 'email|max:255',
            'ContactPhone' => 'max:255',
        ];
    }
}

然后在你的 Controller store 方法中这样做:

public function store(ContactFormRequest $request) {
    // here write code as if validation is valid
}

如果在这个操作之后你仍然不能得到错误那么放:

<?php var_dump(get_defined_vars()) ?>

{{var_dump($errors)}} 之前

关于php - Laravel 5.2 验证错误——错误包为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978704/

相关文章:

jquery - 表单提交后出现错误,如何显示选择值?

gd - 尝试在 php 中显示图像时如何显示错误?

php - 使用 php 获取主机名的最佳方法

php - 通过局域网IP地址连接websocket服务器

javascript - AJAX 之前的 Javascript 中的电子邮件验证

项目和 mysql 中的 Laravel 表

php - 从网站上的两个不同列(div)中的mysql中获取数据

ruby-on-rails - Rails - 从嵌套验证错误消息中省略模型名称

java - bean 验证 - hibernate 错误

php - Laravel 和 Paypal