一、路由
定义路由分组,不用每次去遍历完整的路由,提高路由匹配效率。
二、html 头尾文件引入
<include file="Public/menu"/> 首先file后不能有空格,file的路径是view层的路径(反复试出来的。。。)
三、tp5使用事务
// 手动控制事务的提交
Db::startTrans();
try{ Db::table('tp_data')->delete(2);
Db::table('tp_data')->insert(['id'=>8,'name'=>'thinkphp','status'=>1]);
// 提交事务
echo 'try'; Db::commit();
}catch(Exception $e){
// 回滚事务
echo 'catch';
Db::rollback(); }
四、model 模型层使用
首先要在application/下面见一个model文件夹,在里面创建数据库表的model层
命名:数据库表是什么就命名什么文件,如果已经配置表前缀了,就不用写表前缀了(例子:a_user 如果已经在框架里配置不用加a_表前缀,那命名就是 User.php 我后端用的是PHP),如果是a_user_info,那就命名为UserInfo(也就是后面有下划线的去掉,下划线后第一个字母大写)
使用方式
use 引入
use appindexmodeluser;//(user是模型的名字)
$res = user::get(1);
$res->toArray();
实例化数据模型
$user = new User();
$res = $user::get(2);
$res->toArray();
导入loader类
use hinkloader;
$user = loader::model("user");
$res = $user::get(3);
$res->toArray();
$user = model("user");
$res = $user::get(4);
$res->toArray();
五、原生sql
引入 use/think/Db;
query 用于查询 其他的用execute
插入记录
$result = Db::execute('insert into sb_ad (ad_name, ad_content ,status) values (1, "456",1)');
dump($result);
更新记录
$result = Db::execute('update sb_ad set ad_name = "framework" where ad_id = 1 ');
dump($result);
查询数据
$result = Db::query('select * from sb_ad where ad_id = 1');
print_r($result);
删除数据
$result = Db::execute('delete from sb_ad where ad_id = 2 ');
dump($result);
其它操作
显示数据库列表
$result = Db::query('show tables from tpshop1');
print_r($result);
清空数据表
$result = Db::execute('TRUNCATE table sb_ad');
dump($result);
六、自定义类的加载
把自定义的类库放到 /extend(和public同级)的文件夹下面
引入方法 Loader::import('wx.zhifu'); 注:import里面:(文件夹名.文件名)
调用方法 $pay = new zhifu(); 注:调用方法前一定要加 ,不然实例化错误。
七、隐藏入口index.php文件
NGINX下修改nginx.conf或者域名配置文件
location / { // …..省略部分代码 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } }