Tp5自动生成模块
入口文件添加以下代码并修改build.php
$build = include APP_PATH.'build.php'; //(APP_PATH在index在根目录时可去除)
\think\Build::run($build);
视图输出字符串内容替换
‘view_replace_str’ => [
‘__STATIC’ => ‘/static’,
],
后台前端框架
Html中include将页面分级复用 如头部,尾部,分级
Tp5中url
可以写为{:url(‘cagegory/index’)}样式,cagegory中index方法
<li><a data-href="{:url('cagegory/index')}" data-title="资讯管理" href="javascript:void(0)">资讯管理</a></li>
隐藏index.php
入口文件同级.htaccess文件
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
Validate 验证数据
模块下新建validate并创建php文件 例如 :admin模块 Category控制器
<?php
Namespace app\admin\validate
uer think\Validate
Class Category extends Validate{
Protected $rule=[
[‘name’,’require|max:10’,’分类名必须传递|不能超过10个’],
[‘id’,’number’,’id必须为number’],
];
/使用场景/
protected $scene=[
‘add’ => [‘name’],//添加
‘listorder’ => [‘id’],//排序
];
}
>
调用
$validate= validate(‘Category’);
If(!$validate->scene(‘add’)->check($data)){
$this->error($validate->getError());
}
post处理 控制器提交model层
$data=input(‘post.’);
$res =model(‘Category’)->add($data);
Php数据库调用
$data=[
‘parent_id’=>0,
‘status’ => [‘neq’,-1],
];
$order=[
‘id’ => ‘desc’,
];
$result=$this->where->($data)->order($order)->select();
echo $this->getlastSql();//获取sql语句
Tp5循环输出标签volist
首先在控制器中首先对模版赋值:
$list = User::all();
$this->assign('list',$list);
在模版定义如下,循环输出用户的编号和姓名:
{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist}
TP5 php分页 paginate
Model中
$result=$this->order($order)->paginate(2);
return $result;
View中
<div>{$users->render()}</div>
TP5防止xLL攻击
Htmlentitites($data);
统一过滤
$data= input(‘post.’,’’,’htmlentitites’)
html如果已经转义一次,二次出现会出现乱码。需反转,html_entity_decode
Select结果对象类型转换数组
打开 database.php 增加或修改参数
'resultset_type' => '\think\Collection',
即可连贯操作
model('user')->select()->toArray()
Php去除多维数组中的重复项
array_unique($arr,SORT_REGULAR)