:-: 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')); //還原設置
```
- 文檔目錄
- 一、PHP筆記
- 安裝及部署工具
- Oneinstack使用筆記
- LNMP使用筆記
- Composer使用筆記
- Composer包制作和應用
- Windows下的PHP
- Docker安裝MySQL
- PHP知識匯總
- PHP8.0特性
- PHP雜項總結
- empty測試
- 阿里云SDK使用文檔
- Swoole學習筆記
- PHP系統操作函數
- PHP系統探針
- PHPExcel導入導出數據
- PHP正則
- 數組函數
- Workerman小記
- trait
- 抽象類
- MVC設計模式
- PHP連接Access數據庫
- guzzlehttp
- PHP加密方法
- PHP框架集合
- ThinkPHP
- YII
- Laravel使用筆記
- easyswoole
- TP5.1的正確使用方式
- ThinkPHP6.0隊列
- PHP相關技術
- JWT
- 支付筆記
- PHP新寫法
- PHP常用函數
- 二、運維筆記
- CentOS
- 常用命令
- 文件操作類
- 問題記錄
- iptables
- 壓縮解壓命令
- CentOS8筆記
- Linux常用信息查看命令
- curl
- dig&nslookup
- 運維技術
- DNS體系
- CDN體系
- Haproxy負載均衡
- Ansible筆記
- crontab
- LVS簡單理解
- 日志分析
- Python系統監控
- Linux系統監控
- 負載均衡方法
- Shell腳本示例
- ntp同步時間
- 寶塔運維
- Goaccess的使用
- Supervisor使用
- 用戶管理
- RSA證書登錄
- 網絡技術
- DHCP
- IPv6學習
- 網絡技術筆記
- 抓包筆記
- IPv4
- TCP
- IP基礎知識總結
- IPv6地址庫
- IPv6地址列表
- 云產品
- 對象存儲大比拼
- 靜態站點部署方案
- Apache配置總結
- Docker筆記
- 三、Web體系
- HTTP
- HTTP頭字段總結
- head頭部細講
- 跨域請求
- HTTPS
- HTTP狀態碼表
- 關于IP的HTTP頭部
- HTTP Method 詳細解讀
- HTTP的表單提交方式
- Vue
- Vue學習筆記
- ElementUI筆記
- Vue項目部署
- vue+layui
- vue-resource的使用
- axios的使用
- vue-element-admin
- Electron打包Vue
- Javascript
- JavaScript遍歷json總結
- jQuery方法匯總
- WebSocket
- 案例:使用JavaScript獲取用戶內網IP地址
- JS導出Excel
- 前端筆記
- Viewer.js
- CSS筆記
- LayUI使用筆記
- 大屏系統
- 前端大屏系統
- 大屏預覽
- 大屏HTML源碼
- 常見Web攻擊
- OAuth2.0
- 綜合知識
- 四、數據庫
- MySQL
- MySQL數據庫備份
- MySQL用戶管理
- JSON字段查詢
- mysqldump導入導出數據庫總結
- MySQL數據類型
- MySQL數據庫案例總結
- MySQL8.0.11安裝筆記
- Binlog筆記
- Navicat的使用
- MySQL常用內置函數
- Windows安裝mysql8.0
- 存儲過程
- 字符集
- MySQL主從復制
- PHPEnv一鍵安裝MySQL
- Redis
- Redis筆記
- Redis在Windows的使用
- phpredis教程
- Redis事務
- redis集群
- Redis主從復制
- MongoDB
- MongoDb匯總
- 遇到問題
- 備份與還原
- 語法
- MongoDB安裝
- Postgresql
- 安裝
- PG筆記
- PG在ThinkPHP中使用
- PG數據庫和MySQL數據庫對比
- Elasticsearch
- 查詢
- 數據格式
- 五、Nginx
- Nginx筆記
- 反向代理&負載均衡
- Nginx配置文件全面解析
- https/ssl配置
- 日志切割
- Openresty筆記
- 變量解釋
- Tengine
- Nginx語法
- 文件服務器
- 六、其他語言
- Node.js
- Express
- 安裝問題
- pm2的使用
- Python
- Tornado
- pip的使用
- Scrapy
- 多進程
- Python導出本地Excel
- Requests庫
- Socket庫
- Django
- 問題記錄
- Python虛擬環境
- Fabric庫
- Flask
- MongoDB的使用
- uwsgi部署
- Gunicorn部署
- Flask的虛擬環境
- Java
- JDK安裝
- JSP頁面
- JSP項目部署
- 學習計劃
- Java學習記錄
- Java相關狀態碼
- Jfinal筆記
- Websocket
- 客戶端JavaScript
- Workman
- Swoole
- .NET
- WPF
- PowerShell
- 文件操作
- Interop.Excel
- DotNet筆記
- Go
- beego
- gin
- 備份MySQL數據庫至OSS
- 對象存儲比較更新
- 使用Go做一個靜態文件服務器
- Ruby
- 七、雜項
- 其他筆記
- 義務勞動系統操作說明
- USB電流筆記
- Git使用筆記
- git常用命令列表
- git碼云配置hook鉤子實現自動部署
- 搭建git服務器
- 命令手冊
- git鉤子
- 自建Git服務器配置自動部署
- 算法匯總
- 時間復雜度和空間復雜度的簡單講解
- 加密算法
- 測試
- AB測試
- OFFICE
- Excel
- 數學筆記
- 對數
- 指數
- 三角函數
- 我用latex寫公式
- 博客生成器
- markdown轉html
- Jekyll
- Hugo
- 附:測試四大git-pages
- Hexo
- svn使用簡記
- 正則表達式
- 草稿
- 個人成長篇
- 自創JS加密PHP解密程序
- 有趣的github項目
- 編輯器使用習慣
- 電腦選購指南
- 服務器重裝備忘錄