ThinkPHP 採用 MVC 架構,每個 xxxAction.class.php 對應一個應用模組,其中的方法對應操作。輸出流程:控制器賦值 → 模板引擎解析 → 輸出 HTML。
class IndexAction extends Action {
public function index() {
$value = 'Hello, ThinkPHP';
$this->assign('name', $value); // 方式一
$this->name = $value; // 方式二(等效)
$this->display(); // 輸出對應模板
}
}
Tpl/default/Index/index.html
{$name}
測試輸出:{$name}
{$變數名}:輸出標量變數{$array.key} 或 {$array['key']}:輸出陣列元素{$obj->property}:輸出物件屬性$data = [
'name' => 'ThinkPHP',
'email' => 'contact@thinkphp.cn',
'phone' => '400-888-8888',
];
$this->assign($data); // 一次賦值多個變數
$users = [
['name' => '張三', 'email' => 'zhang@example.com'],
['name' => '李四', 'email' => 'li@example.com'],
];
$this->assign('users', $users);
{$vo.name} - {$vo.email}
{$i} {$vo.name} {$vo.email} 啟用 停用
{$vo}
VIP 會員 普通會員 訪客 待付款 已付款 已發貨 其他
Tpl/default/Layout/layout.html
{$seo_title|default='預設標題'}
{$header|default=''}
{__CONTENT__}
// 控制器
public function index() {
$this->assign('seo_title', '首頁 - 我的網站');
$this->display('Index:index', 'Layout/layout'); // 指定佈局
}
| 修飾符 | 說明 | 範例 |
|---|---|---|
default | 預設值 | {$name|default='訪客'} |
strtolower | 轉小寫 | {$email|strtolower} |
date | 格式化日期 | {$time|date='Y-m-d H:i'} |
substr | 截取字串 | {$content|substr=0,100} |
raw | 不轉義 HTML | {$html|raw} |
### | 自訂函式 | {$text|my_helper} |
'template_cache_on' => true(生產環境)