[thinkPHP5项目实战_09]后台添加栏目及验证

1.后台的模板分离和URL生成

上一篇介绍了前台页面的模板分离和URL生成,构建博客系统还需要后台管理系统,通过类似的方法构建后台的模板

[thinkPHP5项目实战_09]后台添加栏目及验证_第1张图片

其中cate.php为文章管理控制器,Cate类下面的add函数用于添加文章

fetch();
    }

    public function add()
    {
        return $this->fetch();
    }
}
index.php为后台首页控制器:

fetch();
    }
}
完成后台模板引入后,

后台首页地址为:默认访问admin模块下的index控制器下的操作方法

http://localhost/tp5/public/index.php/admin
后台查看文章列表地址为:访问admin模块下的cate控制器下的lists操作方法

http://localhost/tp5/public/index.php/admin/cate/lists
后台添加文章的地址为:访问admin模块下的cate控制器下的add操作方法

http://localhost/tp5/public/index.php/admin/cate/add

栏目之间跳转通过url助手函数实现

[thinkPHP5项目实战_09]后台添加栏目及验证_第2张图片

2.创建本地数据库

访问http://localhost/phpMyAdmin/index.php

默认账号和密码为root,创建数据库tp5,新建数据表tp6_cate,字段数为5

分别新建五个字段:

ID,类型mediumint,自动增加,设为主键,备注栏目ID

catename,类型varchar,长度30,备注栏目名称

keyword,类型varchar,长度150,备注栏目关键词

desc,类型text,备注栏目描述

type,类型tinyint,默认值为0,备注栏目类型

[thinkPHP5项目实战_09]后台添加栏目及验证_第3张图片

3.前台add.html页面构建

使用form表单提交数据,post提交方式,action为空则提交到当前控制器的操作方法,即add方法

栏目名称:
关键词:
栏目类型: 留言板
内容:

4.数据库连接

打开application文件夹下面的database.php文件,填写本地数据库信息

username和password默认都为root,database这里为tp5,

因为tp5中的数据表为tp5_cate,则数据表前缀prefix为tp5_

保存

5.提交数据验证

提交请求的数据经过验证后才能存入数据库中,tp5提供了验证器用于验证数据

定义一个\app\index\validate\Cate验证器类用于Cate的验证,在admin模块下新建validate文件夹,新建cate.php用于验证:

  'require|max:25|unique:cate',
    ];

    //验证提示
    protected $message  =   [
        'catename.unique' => '栏目名称不能重复', 
        'catename.require' => '栏目名称必须',
        
    ];
}

以上根据tp5的文档来定义的验证规则

6.数据接收和处理

数据提交到Cate控制器下的add方法,因此,需要在该方法中对提交的数据进行处理:

fetch();
    }

    public function add()
    {
        //reuqest方法继承于Controller,使用request助手函数判断请求方式
        //使用助手函数input接收接收输入的值
    	if(request()->isPost()){
            $data = [
                'catename'=>input('catename'),
                'keywords'=>input('keywords'),
                'desc'=>input('desc'),
                'type'=>input('type') ? input('type') : 0,//如果type为空则为0
            ];
            //对输入的内容进行验证,使用tp5推荐的验证器的方式
            $validate = \think\Loader::validate('Cate');
            if($validate->check($data)){
                //将$data插入数据库,使用tp5数据库添加数据的方法
                //在database.php配置文件中配置了数据库前缀(prefix),那么可以直接使用 Db 类的 name 方法提交数据
                $res = \think\Db::name('cate')->insert($data);
                //添加判断,成功则跳转到lists方法
                if($res){
                    return $this->success('添加栏目成功','lists');
                }else{
                    return $this->error('添加栏目失败');
                }
            }else{
                //验证失败输出提示信息
                return $this->error($validate->getError());
            }
    		return;
    	}
        return $this->fetch();
    }
}

7.实现效果

[thinkPHP5项目实战_09]后台添加栏目及验证_第4张图片

你可能感兴趣的:(ThinkPHP5博客系统,tp5验证,tp5表单提交,tp5插入数据库)