1.tp5 控制器中可以写一个私有属性, 比如:
private $obj;
然后初始化控制器的时候赋予他值
//初始化控制器
public function _initialize(){
$this -> obj = model('你需要操作的模板');
//这样 你就可以直接掉用 $this -> obj -> 你需要操作的模板方法
}
2.tp5 input();遇到的问题
我url使用伪静态 结果input('get.') 或者 Input('post.')获取不到参数, 可以直接 input();获取到参数
3.tp5的分页和tp3的分页有很大的区别
tp5分页 只需要查询完数据吧select(); 替换成 paginate('number') 即可; 里面可以穿参数 穿几就是相当于一页几条数据
然后前端分页的时候直接调用 {$xxx -> render()} $xxx代表 $this->assign()里面传输的名字
分页的属性可以配置. 配置在config里面的最后面
//分页配置
'paginate' => [
'type' => 'bootstrap',
'var_page' => 'page', //分页的get参数名字
'list_rows' => 15, //分页的默认页数
],
5.$_SERVER['HTTP_REFERER'] 代表上一个页面
6.tp 的validate 过滤
我的validate 过滤是配置在app/admin/validate下面
validate下面的php
use think\Validate;
extends Validate
protected $rule[
['get或post的key','规则','错误提示信息']
];
/*场景设置*/
protected scene = [
'add' => ['xx','xx','xx'] add 代表添加时候使用 可更改. 后面的参数代表要验证的字段
];
控制器里面调用 ps:其实我觉得应该和tp3一样 在模板里面就处理完这些东西. 看的这个事情有点难受,不过目前先这样 后期修改
$validate = validate('XXXX'); 调用validate 对应名称的控制器名字
$validate -> scene('add') -> check($data); 这样完成验证
如果错误 直接 $this -> error($validate -> getError()); 返回错误信息
没有则证明验证成功,继续进行下一步.
7.tp config 函数
这个函数调用的方法 config('xxx.cc');代表调用扩展目录 extra 目录下面 xxx.php 下面 return 的数组下标为cc的信息
8.config 配置文件
建议 吧view 视图配置到Public 下面 然后把public 权限全部打开,
其他的目录权限就可以做限制.
'template' => [
// 模板路径
'view_path' => '../'.TMPL_THEMES.'admin/',
],
这个 TMPL_THEMES 我是在入口文件自定义了一个常量
define('TMPL_THEMES_NAME','template/'); //这个常量是原来框架的 没什么用 也没删除
define('TMPL_THEMES','public/'.TMPL_THEMES_NAME); //可以柔和为一个一个常量 减少冗余
define('TMPL_THEMES','public/template/');
// 视图输出字符串内容替换
'view_replace_str' => [
'__STATIC__' => '/static'
],
这个代表view 可以直接使用的常量 可以设置路径.
9.http_build_query($arr);
php 函数, 可以把数组转化为 URL-encode 的字符串,. 说白了就是url的后缀参数