MichaelJennings / validation
Laravel 4 验证软件包
Requires
- php: >=5.3.0
- illuminate/support: 4.2.*
This package is auto-updated.
Last update: 2024-09-06 08:23:38 UTC
README
这是一个Laravel 4验证软件包,旨在帮助您清理控制器和模型,使验证更快、更简单。
安装
将包包含在您的composer.json
中。
"michaeljennings/validation": "1.0"
运行composer install
或composer update
以下载依赖项。
一旦下载了软件包,请将验证服务提供程序添加到app/config/app.php
中的服务提供程序列表中。
'providers' => array(
'Michaeljennings\Validation\ValidationServiceProvider'
);
将Validation
外观添加到您的别名数组中。
'aliases' => array(
'Validation' => 'Michaeljennings\Validation\Facades\Validation',
);
使用php artisan config:publish michaeljennings/validation
发布配置文件
默认情况下,验证器存储在app/validators.php
中,因此您可能需要创建此文件。或者,如果您想在其他地方存储验证器,您可以在包配置中更新路径。
使用方法
创建验证器
要创建一个新的验证器,我们使用add
函数。此函数接受两个参数,一个用于调用验证器的名称和一个包含验证器规则的闭包。
Validation::add('exampleValidator', function($validator) {
$validator->rule('name')->required();
});
分解Validation::add('exampleValidator', function($validator) {});
将一个新的验证器添加到名为'exampleValidator'
的集合中。
然后我们在$validator
对象上添加所有验证规则。要创建一个新规则,我们使用rule
函数,然后可以在规则对象上链式调用Laravel验证规则。
例如,如果我们想验证一个电子邮件字段以确保已传递值且该值是有效的电子邮件地址,我们可以使用$validator->rule('email')->required()->email();
。
验证规则可以是驼峰式或下划线命名,因此$validator->('foo')->requiredWith('bar');
和$validator->('foo')->required_with('bar');
都是有效的。
要查看所有可用的验证规则,请参阅Laravel文档。
验证错误消息
如果您需要设置不同的验证错误消息,我们可以使用message
函数。此函数接受两个参数,用于显示错误消息的验证规则和错误消息。
$validator->rule('foo')->required()->message('required', 'This is a different validation message');
使用验证器
要运行验证器,我们使用make
函数。此函数接受两个参数,要运行的验证器的名称和要验证的输入。当我们调用make函数时,验证器绑定到验证类,因此我们可以在验证外观上调用任何Laravel验证函数。
Validation::make('exampleValidator', Input::all());
if (Validation::passes()) { // Handle success } else { return Redirect::back()->withErrors(Validation::errors()); }
您也可以在使用make
函数时链式调用函数。
if (Validation::make('exampleValidator', Input::all())->fails()) {
return Redirect::back()->withErrors(Validation::errors());
}
如果您需要在创建验证器后添加规则,可以使用rule
函数创建新规则,然后使用createRules
函数更新验证器的规则。
Validation::make('exampleValidator', Input::all());
Validation::rule('foo')->required(); Validation::createRules();