Laravel 5框架学习之表单验证


Posted in PHP onApril 08, 2015

在建立一个文章的时候,如果你什么都不输入直接提交,ok,你获得了一个空的文章,没有任何错误提示,这是不对的。在命令行下运行 php artisan 可以看到一个选项 make:request,新建一个form request类。在命令行执行

php artisan make:request CreateArticleRequest

生成的文件在 app/http/requests 目录下。在文件中我们可以看到两个方法:

public function authorize()
 {
 return false;
 }
 
 public function rules()
 {
 return [
  //
 ];
 }

authorize 表示用户在提交表单的时候是否需要是认证用户,我们不需要认证,返回 true。rules是我们的规则方法。让我们修改这个方法:

public function authorize()
 {
 //修改为 true,表示不需要认证,或者是通过认证
 return true;
 }
 
 public function rules()
 {
 return [
  'title' => 'required|min:3',
    'body' => 'required',
    'published_at' => 'required|date'
 ];
 }

其他的约束可以插看 laravel 的文档。上面的约束表示 title 是必须输入的,最少3个字符,body 是必须的,published_at 是必须的而且是日期。

在视图中,我们总是可以访问 $errors 变量来判断我们是否有错误,修改视图

@if ($errors->any())
    <ul class="alert alert-danger">
      @foreach($errors->all() as $error)
        <li>{{ $error }}</li>
      @endforeach
    </ul>
  @endif
  
  {{--使用我们添加的 illuminate\html 开源库--}}
  {!! Form::open(['url' => 'articles']) !!}

修改控制器,引入我们的 Request 类。

public function store(Requests\CreateArticleRequest $request) {
    Article::create($request->all());

    return redirect('articles');
  }

再次提交表单,什么都不填,可以看到错误信息。

修改提示信息变为中文

显示的是英文的错误信息,实际上laravel考虑到了国际化的问题,首先修改 config/app.php ,

 'locale' => 'zh',

将 locale 语言设置为中文,然后再 resources/lang 下面新建文件夹 zh, 拷贝 resources/lang/en/validation.php 文件到 zh 目录下,修改:

"min"         => [
 "numeric" => "The :attribute must be at least :min.",
 "file"  => "The :attribute must be at least :min kilobytes.",
 "string" => ":attribute 至少要包含 :min 字符。",
 "array"  => "The :attribute must have at least :min items.",
 ],
 
 "required"       => ":attribute 必须填写。",

其他的可以自行翻译。再次提交空表单,错误信息为中文了。而且 min:3 的判断也为最少3个中文。

--

laravel 也在控制器中集成了 validate 方法,换句话说,我们不一定要生成 request 类,这些工作我们可以直接在控制器中完成。

修改控制器:

//注意 Request 的命名空间,不要弄错了
  public function store(\Illuminate\Http\Request $request) {

    $this->validate($request, [
      'title' => 'required|min:3',
      'body' => 'required',
      'published_at' => 'required|date'
    ]);

    Article::create($request->all());

    return redirect('articles');
  }

结果相同,这样可以更快速的完成简单的验证。

以上所述就是本文给大家分享的全部内容了,希望能够对大家熟练掌握Laravel5框架有所帮助。

PHP 相关文章推荐
php读取文件内容的几种方法详解
Jun 26 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
Jun 23 PHP
php返回json数据函数实例
Oct 09 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
实例讲解PHP表单处理
Feb 15 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 #PHP
Laravel 5框架学习之表单
Apr 08 #PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 #PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
Apr 08 #PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 #PHP
Laravel 5框架学习之环境与配置
Apr 08 #PHP
Laravel 5框架学习之Blade 简介
Apr 08 #PHP
You might like
使用PHP静态变量当缓存的方法
2013/11/13 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
jquery实用代码片段集合
2010/08/12 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
layui表格数据重载
2019/07/27 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
python实现俄罗斯方块
2018/06/26 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
先进党支部事迹材料
2014/01/13 职场文书
《日月潭》教学反思
2014/02/28 职场文书
微笑服务演讲稿
2014/05/13 职场文书
质量负责人任命书
2014/06/06 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
学校捐款活动总结
2015/05/09 职场文书
CSS基础详解
2021/10/16 HTML / CSS