ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – Laravel 5.2验证错误 – 错误包空

2019-05-27 22:21:16  阅读:214  来源: 互联网

标签:php laravel laravel-5-2 validation


我有一个运行Laravel 5.2的新站点(Laravel Framework版本5.2.39).注意:routes文件不使用Web中间件组,不再需要该组并且可能导致此问题.

我在ContactController的store方法上有一个简单的验证:

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

当我故意无法通过验证时,网站会重定向回表单,但错误包是空的,因此不会提供错误信息.

在表单视图(resources / contacts / new.blade.php)中,我将以下代码放在docs和dump中:

{{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-> failed()进行验证检查.

检查此示例:

$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();
}

但我建议你创建ContactFormRequest类来扩展Request类并将其放在store参数中(截图: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',
        ];
    }
}

然后在您的控制器存储方法中执行以下操作:

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

如果经过这次操作你仍然无法得到错误,所以放:

<?php var_dump(get_defined_vars()) ?>

在{{var_dump($errors)}}之前

标签:php,laravel,laravel-5-2,validation
来源: https://codeday.me/bug/20190527/1166466.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有