Laravel表单自动验证:规则与实现
在Laravel框架中,自动验证是确保用户输入数据质量的重要步骤,特别是在处理表单数据时。本文将详细介绍如何在Laravel项目中设置和实现表单数据的自动验证规则,包括视图文件(form.blade.php)的HTML结构,以及后端路由和控制器的验证逻辑。 首先,我们来看视图文件(form.blade.php)的部分代码,它包含了创建用户注册表单的基本元素。`{{Form::open(array('url'=>'registration'))}}` 开始了一个HTML表单,指向`/registration` URL。接下来,表单包含四个字段:用户名('username')、电子邮件('email')、密码('password')和密码确认('password_confirmation'),每个字段都有相应的标签(label)进行说明。 在`app/routes.php`中,有两个路由定义: 1. `Route::get('/', function() { return View::make('form'); })`: 当用户访问根URL时,显示表单页面。 2. `Route::post('/registration', function() { ... })`: 对于POST请求(如表单提交),接收来自`form.blade.php`的表单数据,并执行验证。 验证逻辑在`Route::post`的回调函数内,通过`Input::all()`获取所有提交的数据。接着,定义了验证规则数组 `$rules`,其中规定了对 'username' 字段的要求,即只允许字母数字字符且长度至少为3个字符。 `$validator = Validator::make($data, $rules);` 这一行创建了一个Validator对象,传入数据和规则数组。如果验证通过(`$validator->passes()`),则执行成功的操作,例如存储数据或返回自定义消息。如果验证失败(`$validator->fails()`),则重定向回初始页面,显示错误消息。 总结来说,Laravel自动验证提供了方便的方式来管理表单输入的数据有效性。开发者可以轻松地在视图中创建表单,并在后端使用预定义的验证规则来确保数据满足预期格式。通过结合HTML表单、路由和控制器中的验证逻辑,可以增强应用程序的安全性和用户体验。
<!-- app/views/form.blade.php -->
{{ Form::open(array('url' => 'registration')) }}
{{-- Username field. ------------------------}}
{{ Form::label('username', 'Username') }}
{{ Form::text('username') }}
{{-- Email address field. -------------------}}
{{ Form::label('email', 'Email address') }}
{{ Form::email('email') }}
{{-- Password field. ------------------------}}
{{ Form::label('password', 'Password') }}
{{ Form::password('password') }}
{{-- Password confirmation field. -----------}}
{{ Form::label('password_confirmation', 'Password confirmation') }}
{{ Form::password('password_confirmation') }}
{{-- Form submit button. --------------------}}
{{ Form::submit('Register') }}
{{ Form::close() }}
路由部分:
// app/routes.php
Route::get('/', function()
{
return View::make('form');
});
Route::post('/registration', function()
{
// 获取所有表单数据.
$data = Input::all();
$rules = array(
'username' => array('alpha_num', 'min:3')
);
// 开始验证
$validator = Validator::make($data, $rules);
if ($validator->passes())
{ // 验证成功
return 'Data was saved.';
} // 验证失败
return Redirect::to('/');
});
可用的验证规则
regex:pattern(正则)
验证此规则的值必须符合给定的正则表达式。
accepted(yes|no|1)
验证此规则的值必须是 yes、 on 或者是 1。这在验证是否同意”服务条款”的时候非常有用。
in:foo,bar,…(in 规则)
验证此规则的值必须在给定的列表中存在。
notin:_foo,bar,…(not in 规则)
验证此规则的值必须在给定的列表中不存在。
剩余10页未读,继续阅读
- 粉丝: 1
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全