九、將後臺模板與框架做結合
模板整合思路:
①確定頁面的訪問路徑(模塊、控制器、方法)
②新建對應的控制器方法,在方法中調用模板
③將模板頁面移動到對應的視圖目錄下(創建子目錄)
④將靜態資源文件移動到public/static/admin目錄下
⑤修改模板文件中靜態資源路徑
頁面分佈:
登錄頁 Login控制器login方法 login.html
首頁 Index控制器index方法 index.html
商品列表 Goods控制器index方法 goods_list.html -> index.html
商品新增 Goods控制器create方法 goods_add.html -> create.html
商品修改 Goods控制器edit方法 goods_edit.html -> edit.html
管理員列表 Manager控制器index方法 manager_list.html -> index.html
管理員新增 Manager控制器create方法 manager_add.html -> create.html
管理員修改 Manager控制器edit方法 manager_edit.html ->edit.html
…
1、模板佈局
(見手冊–模板–模板佈局)
使用模板佈局,就是把多個模板頁面都有的公共代碼給抽取出來,放到一個公共位置開發維護
好處:相同的代碼只維護一份,減少代碼工作量
後臺全局佈局設置步驟:
①修改配置文件application/admin/config.php,加入以下設置
'template' => [
'layout_on' => true,//開啓佈局
'layout_name' => 'layout',//佈局文件名稱
]
②將靜態資源文件移動到/public/static/admin目錄下
③在application/admin/view目錄下,新建layout.html
將後臺頁面公共的頭部、底部代碼提取到layout.html中,在中間位置放一個特殊字符串“{_CONTENT_}”,表示此位置,替換爲原始要訪問的頁面內容。
layout.html文件中, 只保留所有頁面公共 的css和js相關代碼,修改靜態資源路徑
注: 一定不能 直接將所有css和js都放在layout.html中。
注:TP框架中,模板中的靜態資源路徑,不能使用相對路徑./ ,必須使用以/開頭的路徑。
④臨時關閉模板佈局
全局佈局設置,對所有頁面全部生效。
特殊頁面(不需要使用佈局的頁面),可以在控制器方法中,臨時關閉模板佈局。
$this->view->engine->layout(false);
比如登錄頁面,不需要使用佈局,見 “3、後臺登錄頁”
2、後臺首頁
①確定頁面的訪問路徑(模塊、控制器、方法)
admin模塊Index控制器index方法
②新建對應的控制器方法,在方法中調用模板
<?php
namespace app\admin\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
return view();
}
}
③將模板頁面移動到對應的視圖目錄下
index.html => application/admin/view/index/index.html
④修改模板文件
保留頁面獨有的靜態資源文件,以及主體部分代碼
修改模板文件中靜態資源路徑
注:如果頁面顯示效果不對,可以考慮先刪除緩存 runtime目錄
3、後臺登錄頁
①確定頁面的訪問路徑(模塊、控制器、方法)
admin模塊 login控制器 login方法
②新建對應的控制器方法,在方法中調用模板
注:後臺的登錄頁面,不需要使用佈局
③將模板頁面移動到對應的視圖目錄下
將login.html 移動到 application/admin/view/login/目錄下
⑤修改模板文件中靜態資源路徑
修改application/admin/view/login/login.html
注:也可以使用_STATIC_ 代替靜態資源路徑中的/static(手冊–視圖–輸出替換)
4、其他頁面
重複步驟①②③⑤