龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

Laravel框架表单验证详解(2)

时间:2014-09-06 16:11来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: Route::get('register', function() { return View::make('user.register'); }); Route::post('register', function() { $rules = array(...); $validator = Validator::make(Input::all

复制代码 代码如下:

Route::get('register', function()
{
return View::make('user.register');
});
Route::post('register', function()
{
$rules = array(...);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
return Redirect::to('register')->withErrors($validator);
}
});

注意当验证失败,我们使用 withErrors 函数把 Validator 实例传递给 Redirect。这个函数将刷新 Session 中保存的错误消息,使得在下次请求中能够可用。

然而,注意我们没有必要明确的在 GET 路由中绑定错误消息到路由。这是因为 Laravel 总会检查 Session 中的错误,并自动绑定它们到视图如果它们是可用的。所以,对于每个请求,一个 $errors 变量在所有视图中总是可用的,允许您方便的认为 $errors 总是被定义并可以安全使用的。$errors 变量将是一个 MessageBag 类的实例。

所以,在跳转之后,您可以在视图中使用自动绑定的 $errors 变量:

复制代码 代码如下:

<?php echo $errors->first('email'); ?>

  可用的验证规则

  下面是一个所有可用的验证规则的列表以及它们的功能:

复制代码 代码如下:

Accepted
 Active URL
 After (Date)
 Alpha
 Alpha Dash
 Alpha Numeric
 Before (Date)
 Between
 Confirmed
 Date
 Date Format
 Different
 E-Mail
 Exists (Database)
 Image (File)
 In
 Integer
 IP Address
 Max
 MIME Types
 Min
 Not In
 Numeric
 Regular Expression
 Required
 Required If
 Required With
 Required Without
 Same
 Size
 Unique (Database)

accepted

验证此规则的值必须是 yes、 on 或者是 1。这在验证是否同意"服务条款"的时候非常有用。

active_url

验证此规则的值必须是一个合法的 URL,根据 PHP 函数 checkdnsrr。

after:date

验证此规则的值必须在给定日期之后,日期将通过 PHP 函数 strtotime 传递。

alpha
  验证此规则的值必须全部由字母字符构成。

alpha_dash
  验证此规则的值必须全部由字母、数字、中划线或下划线字符构成。

alpha_num
  验证此规则的值必须全部由字母和数字构成。

before:date
  验证此规则的值必须在给定日期之前,日期将通过 PHP 函数 strtotime 传递。

between:min,max
  验证此规则的值必须在给定的 min 和 max 之间。字符串、数字以及文件都将使用大小规则进行比较。

confirmed
  验证此规则的值必须和 foo_confirmation 的值相同。比如,需要验证此规则的域是 password,那么在输入中必须有一个与之相同的 password_confirmation 域。

date
  验证此规则的值必须是一个合法的日期,根据 PHP 函数 strtotime。

date_format:format
  验证此规则的值必须符合给定的 format 的格式,根据 PHP 函数 date_parse_from_format。

different:field
  验证此规则的值必须与指定的 field 域的值不同。

email
  验证此规则的值必须是一个合法的电子邮件地址。

exists:table,column
  验证此规则的值必须在指定的数据库的表中存在。

  Exists 规则的基础使用

复制代码 代码如下:
'state' => 'exists:states'

指定列名
复制代码 代码如下:

'state' => 'exists:states,abbreviation'

您也可以指定更多的条件,将以 "where" 的形式添加到查询。
复制代码 代码如下:

'email' => 'exists:staff,email,account_id,1'

image
  验证此规则的值必须是一个图片 (jpeg, png, bmp 或者 gif)。

  in:foo,bar,...

  验证此规则的值必须在给定的列表中存在。

  integer

  验证此规则的值必须是一个整数。

 
  验证此规则的值必须是一个合法的 IP 地址。

max:value

  验证此规则的值必须小于最大值 value。字符串、数字以及文件都将使用大小规则进行比较。

  mimes:foo,bar,...

  验证此规则的文件的 MIME 类型必须在给定的列表中。

  MIME 规则的基础使用

精彩图集

赞助商链接