:-: ThinkPHP个人笔记 - 默认情况下,指的是ThinkPHP5.1版本 ### (1)事务 > TP3.2.3事务: 开启事务方法 startTrans() 事务提交方法 commit() 事务回滚方法 rollback() > TP5.1事务 ``` // 启动事务 Db::startTrans(); // 提交事务 Db::commit(); // 回滚事务 Db::rollback(); ``` ### (2)控制器中间件 > 使用场景,代替基类控制器做登录权限判断 - 用法 控制器类添加:`protected $middleware = ['UserAuth'];` // 用户权限中间件 创建一个UserAuth中间件,并做权限判断 ``` namespace app\http\middleware; /** * 用户模块权限中间件 */ use think\Controller; class UserAuth extends Controller { public function handle($request, \Closure $next) { if(session("amaze.amaze")!="login"){ $this->success("您还没有登录,请先登录","/amaze/login"); } return $next($request); } } ``` ### (3)通过Cache操作redis ``` use think\facade\Cache; //引入类 $redis = Cache::handler(); //调用句柄 $redis->hSet('ipv64s',"count",800);//直接对redis操作。 ``` ### (4)批量执行updateSQL ``` $data = Db::batchQuery(['update xxx set xxx=1','update xxx set xxx=x']); ``` ### (5)ThinkPHP5.1的日志 要求:自定义日志内容并记录到自定义目录,和原本的日志分开。 以下是把需要记录的文本写到runtime/syslog目录中,方便后期查看 ``` // 记录一下请求 $log = [ // 日志记录方式,内置 file socket 支持扩展 'type' => 'File', // 日志保存目录 'path' => env('RUNTIME_PATH') . 'syslog/', // 最大日志文件数量 'max_files' => 50, // 以json方式保存 'json' => true ]; Log::init($log); Log::record('记录某内容','notice'); Log::save(); Log::init(config('log')); //还原设置 ```