Laravel 5注册商中的自定义验证规则

geoffs3310

我正在使用默认的Laravel 5用户注册资料,该资料使用registrar.php文件app / Services / Registrar.php

我需要执行一个自定义验证规则来检查会话中是否存储了一些东西,否则用户将无法注册。

我尝试创建自己的验证规则,但似乎没有被调用。我究竟做错了什么?

<?php namespace App\Services;

use App\User;
use Event;
use Validator;
use Illuminate\Contracts\Auth\Registrar as RegistrarContract;
use App\Events\UserRegistered;
use Session;

class Registrar implements RegistrarContract {

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    public function validator(array $data)
    {
        Validator::extend('required_images', function($attribute, $value, $parameters)
        {
            die("rule called");
        });

        return Validator::make($data, [
            'first_name' => 'required_images|required|max:255',
            'last_name' => 'required|max:255',
            'discount_code' => 'max:255',
            'register_email' =>       'required|email|confirmed|max:255|unique:users,email',
            'register_password' => 'required|confirmed|min:6|max:60'
        ]);
    }
}

另外,我刚刚将规则required_images附加到first_name字段,但是由于它实际上与注册表单中的字段无关,是否有更好的方法来触发它?

Lukasgeiter

如果仔细看一下validator()函数,您会发现实际上有一条return语句:

public function validator(array $data)
{
    return Validator::make($data, [
//   ^^^
        'first_name' => 'required_images|required|max:255',
        'last_name' => 'required|max:255',
//  ...

这意味着您的规则永远不会得到注册。您应该先这样做:

public function validator(array $data)
{
    Validator::extend('required_images', function($attribute, $value, $parameters)
    {
        die("rule called");
    });

    return Validator::make($data, [
        'first_name' => 'required_images|required|max:255',
        'last_name' => 'required|max:255',
        'discount_code' => 'max:255',
        'register_email' =>       'required|email|confirmed|max:255|unique:users,email',
        'register_password' => 'required|confirmed|min:6|max:60'
    ]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel 5中用于自定义验证规则的自定义占位符

可选的自定义列规则。Laravel 5 验证规则

在Laravel 5中使用表单请求验证时如何添加自定义验证规则

Laravel中图像大小规则的自定义验证消息

在 Laravel 中翻译自定义验证规则消息?

在Laravel中自定义模型存储的验证规则

Laravel自定义验证规则

Laravel:自定义规则的验证消息

Laravel 5.6自定义规则验证

针对 Laravel 5 中输入数组的自定义规则

自定义验证器在Laravel 5中

在Laravel中验证数组时,如何使用数组项规则添加验证自定义消息?

Laravel 5自定义验证

Laravel 5自定义验证规则来检查会话数据

如何将自定义验证规则添加到默认的Validator :: make($ data ...在laravel中注册?

Laravel 表单请求数组验证自定义规则

Laravel 5.1创建自定义验证规则

Laravel验证规则的自定义错误消息:尺寸

更新记录时的laravel自定义验证规则

Laravel 5.5 / 验证器 / 自定义规则

Laravel注册表单上的自定义验证

如何有条件地验证 Laravel 中的自定义规则?

如何在Laravel中覆盖自定义验证规则的消息?

检查 Laravel 自定义验证规则中是否存在路由参数?

如何在Laravel中为相关输入字段创建自定义验证规则

Laravel中的正则表达式规则的自定义验证消息?

如何在laravel 5.2中添加自定义验证规则?

Laravel 5.3在自定义验证规则中设置第二个属性名称

如何在自定义验证规则laravel中访问route参数