写了点tp5的基础教程
创建类,命名空间,use
获取请求参数
//访问:http://www.tp2.com/index.php/index/index/one
//带3个参数的访问:http://www.tp2.com/index.php/index/index/one?id=1&name=jack&age=22
public function one($id=0)
{
//获取请求参数的3种方法:
echo 'id:'.$id.'
'; //参数绑定法,
是换行
echo 'name:'.input('name').'
'; //助手函数法
echo 'age:'.Request::param('age'); //Facade调用,需要use引入Request类
}
验证器
//访问:http://www.tp2.com/index.php/index/index/check?name=jack&age=22a
//访问:http://www.tp2.com/index.php/index/index/check?name=ja&age=22
//访问:http://www.tp2.com/index.php/index/index/check?name=jack&age=22
public function check()
{
//独立验证,不走验证封装的类
$validate = Validate::make([
'name' => 'require|min:3', //name必须存在,并且≥3个字符
'age' => 'number' //age必须是数字
]);
if (!$validate->check(input())) {
dump($validate->getError());
return;
}
dump(['msg'=>'正常']); //dump是打印输出,输出数组
}
抛出异常错误
//打开调试模式:修改配置文件config/app.php中的'app_debug'=> true
//访问:http://www.tp2.com/index.php/index/index/ero //报方法参数错误,因为必须带id参数
//访问:http://www.tp2.com/index.php/index/index/ero?id=2 //结果为4
//访问:http://www.tp2.com/index.php/index/index/ero?id=0 //报错
public function ero($id)
{
try{
echo 8/$id;
}catch (\Exception $e){
exception('0不能当被除数', 400); //助手函数抛出异常
echo '抛出异常会终止执行,这里不会显示';
}
}
SQL文件,请手动创建数据库
CREATE TABLE `qy_user` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`sex` int(11) NOT NULL,
`age` int(11) NOT NULL,
`create_time` int(11) NOT NULL,
`update_time` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `qy_user` (`id`, `name`, `sex`, `age`, `create_time`, `update_time`) VALUES
(1, '小张', 1, 23, 1560658653, 1560658653);
CREATE TABLE `qy_user_address` (
`id` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`city` varchar(255) NOT NULL,
`county` varchar(255) NOT NULL,
`detail` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `qy_user_address` (`id`, `uid`, `city`, `county`, `detail`) VALUES
(1, 1, '北京', '海淀', 'XXXX街道XXXX号');
ALTER TABLE `qy_user` ADD PRIMARY KEY (`id`);
ALTER TABLE `qy_user_address` ADD PRIMARY KEY (`id`);
ALTER TABLE `qy_user` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
ALTER TABLE `qy_user_address` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
查询数据库,所有用户数据
//访问:http://www.tp2.com/index.php/index/index/get_user
public function get_user()
{
//记得修改数据库配置文件中的前缀:'prefix'=> 'qy_'
$res[0]=Db::name('user')->all(); //通过Db类操作数据库
$res[1]=UserModel::all(); //通过模型操作数据(推荐),需要先建好模型类,下面有代码
return json($res); //输出json格式用json()或json_encode()
}
模型关联操作
//访问:http://www.tp2.com/index.php/index/index/get_user_and_address
public function get_user_and_address()
{
//获取关联表所有内容
$res[0]=UserModel::with(['address'])->where('id',1)->find();
//获取关联表指定内容
$res[1]=UserModel::with(['address'=>function($q){
return $q->field('id,uid,detail');
}])->where('id',1)->find();
return json($res);
}
}
User模型类
同目录下新建User.php文件
hasOne('UserAddress','uid','id');
//关联键在address表,那么就用hasone,如果关联键在user表就用belongsTo
}
}
UserAddress模型类
同目录下新建UserAddress.php文件
extend目录
extend目录下的目录必须要加命名空间
如:namespace Obj
应用的时候就是:use obj
extend目录下的文件,由于没有目录,所有不加命名空间
应用时:new \Obj即可