ThinkPHP中create()方法自动验证表单消息

大约概括:

本节大家将以作品的增删改查作为实例系统讲述缓存的使用,那些实例是对前边创造RESTFul风格控制器已毕作品增删改查这篇教程的改建和升级,大家将在其基础上融合进Eloquent
ORM和模型事件,将运用的景况直接拉到生成环境。

主导控制器及控制器路由、控制器中间件都比较不难,那里不再赘述,相关文档参考HTTP
控制器文档一节。

机关验证是ThinkPHP模型层提供的一种多少印证格局,可以在选用create创造数量对象的时候自动举行数量注脚。

1、二者都可用来收纳post表单提交的多寡。

1、准备工作

1、创立RESTFul风格控制器
注:关于如何是RESTFul风格及其规范可参考那篇文章:明白RESTful架构。
正文大家首要商讨成立一个RESTFul风格的控制器用于对博客文章展开增删改查,创立这样的控制器很粗略,在动用根目录运行如下Artisan命令即可:

原理:

2、I(‘post.’)方法可直接接收赋值给变量如$post=I(‘post.’),create()方法源于父类模型封装,需先实例化父类模型,如:$post=M(‘Test’)->create()。

路由及控制器

php artisan make:controller PostController
该命令会在app/Http/Controllers目录下生成一个PostController.php文件,该控制器内容如下:

create()方法收集表单($_POST)新闻并回到,同时触公布单自动验证,过滤不合规字段,

3、I(‘post.’)方法内置默许过滤方法htmlspecialchars可过滤html实体,create()方法需手动成立。

路由的概念和控制器的始建保持和创办RESTFul风格控制器达成小说增删改查中千篇一律。

<?php

在控制器中利用create()方法,(再次回到值为true/false),会活动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义表达规则(验证规则上边会详细表明),当create()方法没有数量即再次回到值为false时,通过$xxx对象->getError();获取并赶回错误新闻!

4、create()方法包蕴一连串 自动验证 自动处理
字段映射等编制(需自定义规则),I(‘post.’)方法无。

始建数据表

    namespace App\Http\Controllers;

动用电动验证必须遵循以下规则格式定义:

5、I(‘post.’)方法可收取所有表单字段,create()方法创设的数量对象会自行过滤掉与数据表中字段不匹配的表单字段。

至于文章对应数据表我们在数据库一些接纳查询构建器达成对数据库的高级查询已有提及,那里我们运用之前创造的数据表即可。

    use Illuminate\Http\Request;

protected $_validate = array(     
    array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), 
    array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),
     ......
);    

6、I(‘post.’)方法多用来字段数据较少,不须要一多样活动作用的场地,create()方法则相反。

创设文章模型

    use App\Http\Requests;
    use App\Http\Controllers\Controller;

内部验证字段,验证规则,错误提醒是必填项,验证条件,附加规则,验证时间为可选!

有关小说模型Post的创导也和此前Eloquent
ORM部分讲ORM概述、模型定义及骨干查询中创设的一模一样。

    class PostController extends Controller
    {
        /**
         * 显示小说列表.
         *
         * @return Response
         */
        public function index()
        {
            //
        }

声明字段(必填):表单字段。

2、修改控制器

        /**
         * 成立新小说表单页面
         *
         * @return Response
         */
        public function create()
        {
            //
        }

注脚规则(必填):require
字段必须、email 邮箱、url URL地址、number 数字,还足以整合附加规则使用。

在头里咱们是因此缓存落成对小说的增删改查操作,那里大家将其修改为经过数据库完结增删改查操作:

        /**
         * 将新成立的小说存储到存储器
         *
         * @param Request
$request
         * @return Response
         */
        public function store(Request $request)
        {
            //
        }

指鹿为马提醒(必填):验证败北时再次回到的提示新闻。

<?php

        /**
         * 展现指定文章
         *
         * @param int $id
         * @return Response
         */
        public function show($id)
        {
            //
        }

证实条件(可选):有0,1,2三种,0:_POST中留存的字段验证,默认;1:验证规则定义了就不可能不讲明;2:值不为空时验证.

    namespace App\Http\Controllers;

        /**
         * 显示编辑指定作品的表单页面
         *
         * @param int $id
         * @return Response
         */
        public function edit($id)
        {
            //
        }

外加规则:

发表评论

电子邮件地址不会被公开。 必填项已用*标注