上一篇介绍了前台页面的模板分离和URL生成,构建博客系统还需要后台管理系统,通过类似的方法构建后台的模板
其中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
访问http://localhost/phpMyAdmin/index.php
默认账号和密码为root,创建数据库tp5,新建数据表tp6_cate,字段数为5
分别新建五个字段:
ID,类型mediumint,自动增加,设为主键,备注栏目ID
catename,类型varchar,长度30,备注栏目名称
keyword,类型varchar,长度150,备注栏目关键词
desc,类型text,备注栏目描述
type,类型tinyint,默认值为0,备注栏目类型
使用form表单提交数据,post提交方式,action为空则提交到当前控制器的操作方法,即add方法
打开application文件夹下面的database.php文件,填写本地数据库信息
username和password默认都为root,database这里为tp5,
因为tp5中的数据表为tp5_cate,则数据表前缀prefix为tp5_
保存
提交请求的数据经过验证后才能存入数据库中,tp5提供了验证器用于验证数据
定义一个\app\index\validate\Cate验证器类用于Cate的验证,在admin模块下新建validate文件夹,新建cate.php用于验证:
'require|max:25|unique:cate',
];
//验证提示
protected $message = [
'catename.unique' => '栏目名称不能重复',
'catename.require' => '栏目名称必须',
];
}
数据提交到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();
}
}