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 相关文章推荐
输出控制类
Oct 09 PHP
一个php作的文本留言本的例子(一)
Oct 09 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
解析php中反射的应用
Jun 18 PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
PHP生成唯一订单号
Jul 05 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
PHP类的自动加载机制实现方法分析
Jan 10 PHP
PHP中“=&gt;
Mar 01 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
PHP 危险函数全解析
2009/09/09 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
关于Python作用域自学总结
2019/06/10 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
下载官网python并安装的步骤详解
2019/10/12 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
python ETL工具 pyetl
2020/06/07 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
如何清空python的变量
2020/07/05 Python
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
春季防火方案
2014/05/10 职场文书
忠诚教育心得体会
2014/09/03 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
2014年财政所工作总结
2014/11/22 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
Android中View.post和Handler.post的关系
2022/06/05 Java/Android