tp5.0升級tp6.0遇到的問題總結
阿新 • • 發佈:2021-07-15
概述
- tp5.0 -> tp5.1 -> tp6.0 都有較大改動,雖然有官方的升級指導檔案但是也沒有覆蓋所有情況
- 本次升級的過程也是作為一次嘗試,以下問題僅是本人在升級專案中遇到,未包括所有情況
- 如果不是必要情況,強烈不推薦升級
遇到的問題
- 路由引數繫結不再支援按照名稱成對解析(url_param_type)
- 本項可直接檢視此連結
- model不再支援
get()/all()
方法- 可以使用
find()/select()
來作為替換 - 若遇到
get()
引數使用的不是主鍵,則需配合where()->find()
使用
- 可以使用
- 系統庫
think\Db | think\Session
等需要使用門面
- 如
think\facade\Session
等,具體可檢視此處
- 如
- model中
init()
方法的模型事件self::beforeInsert(function ($obj) { })
等無法使用- 更改為
public static function onBeforeInsert($obj) {}
- 更改為
- 控制器中
$this->redirect('/path'); return true;
無法使用- 直接更改為
return redirect('/path');
- 直接更改為
Session
需設定為中介軟體使用ROOT_PATH | TEMP_PATH | DS
等全域性變數不可使用- 可替換為
app()->getRootPath() | app()->getRuntimePath()
- 可替換為
- 上傳檔案
validate
方法不可用- 控制器中可使用
$this->validate()
或validate()->check($file)
- 控制器中可使用