Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4,使用扩展添加自定义验证_Php_Laravel_Laravel 4 - Fatal编程技术网

Php Laravel 4,使用扩展添加自定义验证

Php Laravel 4,使用扩展添加自定义验证,php,laravel,laravel-4,Php,Laravel,Laravel 4,我试图使用验证提供的扩展功能, 以下是我所拥有的: 1) 。HomeController.php: $rules = array( 'first_name'=>'required|regex:/^[a-z ,."-]+$/i|min:2', 'last_name'=>'required|regex:/^[a-z ,."-]+$/i|min:2', 'gender

我试图使用验证提供的扩展功能, 以下是我所拥有的:

1) 。HomeController.php:

  $rules = array(
                    'first_name'=>'required|regex:/^[a-z ,."-]+$/i|min:2',
                    'last_name'=>'required|regex:/^[a-z ,."-]+$/i|min:2',
                    'gender'=>'required|alpha|gendercheck',
                    'email'=>'required|email|unique:users,email,'.Input::get('id').',id',
                    'zip'=>'required|zipcheck|max:10',

                    );
2) 。然后,为了使用extend方法,我将其添加到routes.php:

    Validator::extend('zipcheck', function($field,$value,$parameters){
    // List of regular expressions to use, if a custom one isn't specified.
    $countryRegs = array(
          "US"=>"/^[\d]{5}(-[\d]{4})?$/",
          "GB"=>"/^(GIR|[A-Z]\d[A-Z\d]??|[A-Z]{2}\d[A-Z\d]??)[ ]??(\d[A-Z]{2})$/",
          "DE"=>"/\b((?:0[1-46-9]\d{3})|(?:[1-357-9]\d{4})|(?:[4][0-24-9]\d{3})|(?:[6][013-9]\d{3}))\b/",
          "CA"=>"/^([ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ])\ {0,1}(\d[ABCEGHJKLMNPRSTVWXYZ]\d)$/",
          "FR"=>"/^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$/",
          "IT"=>"/^(V-|I-)?[0-9]{5}$/",
          "AU"=>"/^(0[289][0-9]{2})|([1345689][0-9]{3})|(2[0-8][0-9]{2})|(290[0-9])|(291[0-4])|(7[0-4][0-9]{2})|(7[8-9][0-9]{2})$/",
          "NL"=>"/^[1-9][0-9]{3}\s?([a-zA-Z]{2})?$/",
          "ES"=>"/^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$/",
          "DK"=>"/^([D-d][K-k])?( |-)?[1-9]{1}[0-9]{3}$/",
          "SE"=>"/^(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$/",
          "BE"=>"/^[1-9]{1}[0-9]{3}$/"
    ); 

    // get country submitted..
    $country = Input::get('country');

    // check country if in the array..
    if (key_exists($country , $countryRegs))
        return preg_match($countryRegs[$country], $value);  
    else // other countries make sure no special characters in there
        return preg_match('/^[a-z0-9- ]+$/i' , $value);

    });
问题是我想让我的代码井然有序,我不想将验证扩展添加到我的routes.php中

什么是最好的方式,我可以有自己的类,并呼吁这些从我的家庭控制器,它仍然会工作


谢谢

有很多方法可以做到这一点。我喜欢的方式是创建一个文件
/app/validators.php
(因此它与routes.php和
filters.php
位于同一位置)

然后转到app/start/global.php,并在过滤器要求后将其添加到底部:

require app_path().'/validators.php';

现在,您可以在
validators.php
文件中声明所有扩展验证器,Laravel将使用它们。

有很多方法可以做到这一点。我喜欢的方式是创建一个文件
/app/validators.php
(因此它与routes.php和
filters.php
位于同一位置)

然后转到app/start/global.php,并在过滤器要求后将其添加到底部:

require app_path().'/validators.php';

现在,您可以在
validators.php
文件中声明所有扩展验证器,Laravel将使用它们。

有很多方法可以做到这一点。我喜欢的方式是创建一个文件
/app/validators.php
(因此它与routes.php和
filters.php
位于同一位置)

然后转到app/start/global.php,并在过滤器要求后将其添加到底部:

require app_path().'/validators.php';

现在,您可以在
validators.php
文件中声明所有扩展验证器,Laravel将使用它们。

有很多方法可以做到这一点。我喜欢的方式是创建一个文件
/app/validators.php
(因此它与routes.php和
filters.php
位于同一位置)

然后转到app/start/global.php,并在过滤器要求后将其添加到底部:

require app_path().'/validators.php';

现在,您可以在
validators.php
文件中声明所有扩展验证器,Laravel将使用它们。

有几种方法。就个人而言,我喜欢通过
ValidationService
扩展验证(我认为它更干净)

1)我们假设您使用PSR-4在
composer.json
中加载自己的公司目录:

{
    "autoload": {
        "psr-4": {
            "Acme\\": "app/Acme"
        }
        ...
    },
}
您必须运行
composer dumpautoload

2)创建验证服务提供商:

app/Acme/Extension/Validation/ValidationServiceProvider.php

4)创建自定义验证规则:

app/Acme/Extension/Validation/CustomValidator.php


有几种方法可以做到这一点。就个人而言,我喜欢通过
ValidationService
扩展验证(我认为它更干净)

1)我们假设您使用PSR-4在
composer.json
中加载自己的公司目录:

{
    "autoload": {
        "psr-4": {
            "Acme\\": "app/Acme"
        }
        ...
    },
}
您必须运行
composer dumpautoload

2)创建验证服务提供商:

app/Acme/Extension/Validation/ValidationServiceProvider.php

4)创建自定义验证规则:

app/Acme/Extension/Validation/CustomValidator.php


有几种方法可以做到这一点。就个人而言,我喜欢通过
ValidationService
扩展验证(我认为它更干净)

1)我们假设您使用PSR-4在
composer.json
中加载自己的公司目录:

{
    "autoload": {
        "psr-4": {
            "Acme\\": "app/Acme"
        }
        ...
    },
}
您必须运行
composer dumpautoload

2)创建验证服务提供商:

app/Acme/Extension/Validation/ValidationServiceProvider.php

4)创建自定义验证规则:

app/Acme/Extension/Validation/CustomValidator.php


有几种方法可以做到这一点。就个人而言,我喜欢通过
ValidationService
扩展验证(我认为它更干净)

1)我们假设您使用PSR-4在
composer.json
中加载自己的公司目录:

{
    "autoload": {
        "psr-4": {
            "Acme\\": "app/Acme"
        }
        ...
    },
}
您必须运行
composer dumpautoload

2)创建验证服务提供商:

app/Acme/Extension/Validation/ValidationServiceProvider.php

4)创建自定义验证规则:

app/Acme/Extension/Validation/CustomValidator.php


这就是我在我的项目中所做的。我有一个目录
app/extras
,其中包含验证器、单例和过滤器等功能。这就是我在项目中所做的。我有一个目录
app/extras
,其中包含验证器、单例和过滤器等功能。这就是我在项目中所做的。我有一个目录
app/extras
,其中包含验证器、单例和过滤器等功能。这就是我在项目中所做的。我有一个目录
app/extras
,其中包含验证器、单例和过滤器等功能。我再强调也不过分:您必须运行
php artisan dump autoload
。是的,这是最重要的!有多少次我忘了重新运行这个命令!我再强调也不过分:您必须运行
php artisan dump autoload
。是的,这是最重要的!有多少次我忘了重新运行这个命令!我再强调也不过分:您必须运行
php artisan dump autoload
。是的,这是最重要的!有多少次我忘了重新运行这个命令!我再强调也不过分:您必须运行
php artisan dump autoload
。是的,这是最重要的!有多少次我忘了重新运行这个命令!