Php Laravel 4,使用扩展添加自定义验证
我试图使用验证提供的扩展功能, 以下是我所拥有的: 1) 。HomeController.php: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
$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
。是的,这是最重要的!有多少次我忘了重新运行这个命令!