haska / laravel-validation
Laravel 验证包
dev-master
2014-05-25 07:15 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~4.0
Requires (Dev)
- phpspec/phpspec: 2.0.*@dev
This package is not auto-updated.
Last update: 2024-09-24 07:37:25 UTC
README
信息
使用 Composer 安装
然后,如果您使用 Laravel(不是必需的),请将服务提供者添加到 app/config/app.php
文件中的 providers
数组中。
'Haska\Validation\ValidationServiceProvider'
用法
以下是一个示例。假设您需要一个登录表单的验证。首先,创建一个包含必要规则的对象
<?php namespace MyApp\Forms; use Haska\Validation\FormValidator; class Login extends FormValidator { /** * Validation rules for logging in * * @var array */ protected $rules = [ 'username' => 'required', 'password' => 'required' ]; }
接下来,将此对象拉入您的控制器(或您执行验证的地方)。
use MyApp\Forms\Login as LoginForm; use Haska\Validation\FormValidationException; // ... protected $loginForm; public function __construct(LoginForm $loginForm) { $this->loginForm = $loginForm; } public function store() { $input = Input::all(); try { $this->loginForm->validate($input); // login user, do whatever, redirect } catch (FormValidationException $e) { return Redirect::back()->withInput()->withErrors($e->getErrors()); } }
如果验证通过,则返回 true
。否则,将抛出 FormValidationException
异常。您可以在控制器中捕获它,或者将其传递给例如 global.php
进行处理。两种方法都可行。
关键是您将为需要验证的每个表单创建一个专门的类。例如,如果用户可以注册到您的网站,那么您将有一个 Registration
表单对象。可能像这样
<?php namespace MyApp\Forms; use Haska\Validation\FormValidator; class Registration extends FormValidator { /** * Validation rules for registering * * @var array */ protected $rules = [ 'username' => 'required', 'email' => 'required|unique:users', 'age' => 'required|integer', 'gender' => 'in:male,female', 'password' => 'required|confirmed' ]; }
现在,只需将此对象注入到您的控制器或应用服务中,并调用其上的 validate()
方法。
$this->registrationForm->validate(Input::all());