[TOC]
## 控制器模板方法
### **模板渲染**
#### 類方法渲染
```
<?php
namespace app\home;
use denha\Controller;
class Hello extends Controller
{
public function index(){
return $this->view('模板地址');
}
}
```
#### 助手函數渲染
`show('模板地址')`;
### **模板地址**
模板內容存在`resources`目錄下 以`.html` 文件格式命名
#### **空地址**
`$this->show('');` 則根據命名空間和action最終 如實例中模板地址存放位置應該在: resources/home/hello/index.html
#### **相對地址**
`$this->show('detail');` 則根據命名空間和地址名稱組合 當前方法的地址應該在:resources/home/hello/detail.html
#### **帶后綴地址**
`$this->show('detail.html');` 帶后綴則直接以絕對路徑檢索 并且指定后綴名 當前方法地址應該存在 resources/detail.html
### **模板賦值**
#### 直接傳遞
`$this->show('模板地址',['id'=>1]);`
通過控制器 ['id'=>1] 可以將值傳遞到指定模板頁面
>如果引用了Controller類 可以使用 assign類方法傳遞值
#### 類方法傳遞
`$this->assign('id',1);`
## 視圖模板操作
### **讀取變量值**
在控制器中傳了值后 則可以在模板中渲染值
`<p>渲染指定id: {$id}</p> `
轉換成php語言:
`<p>渲染指定id: <?php echo $id; ?></p> `
當前html顯示的內容則是 渲染指定id:1 {$id} 將直接轉換成id
### **讀取數組變量**
`<p>渲染指定id: {$data.id}</p>`
`<p>渲染指定id: {$data['id']}</p>`
兩種方式都可以直接讀取數組中 key值為id的值
### **模板中使用公共方法**
`<p>渲染指定id: {:str_replace('1','2',$data.id)}</p>`
轉換成php語言:
`<p>渲染指定id: <?php str_replace('1','2',$id); ?></p> `
>公共方法可以直接使用php原生方法 也可以直接使用助手函數方法
### **設置默認值**
`<p>渲染指定id: {default:$name|2}</p>`
`<p>渲染指定id: {??:$name|2}</p>`
轉換成php語言:
`<p>渲染指定id: <?php echo $name ?: '2' ?></p> `
`<p>渲染指定id: <?php echo $name ?? '2' ?></p> `
### **模板語法if**
```
<div>
{if $id == 1}
<p>id值 == 1</p>
{elseif $id == 2}
<p>id值 == 2</p>
{else}
<p>id值 == {$id}</p>
{/if}
</div>
```
### **模板語法 loop**
數組循環渲染
```
<div class="loop">
{loop $ids $key $item}
<p>{$key}:{$item.id}</p>
<p>{$key}:{$item.name}</p>
{/loop}
</div>
<div class="loop">
{loop $ids $item}
<p>{$item.id}</p>
<p>{$item.name}</p>
{/loop}
</div>
```
### **模板語法include**
引用其他模板
`{include /admin/public/global_css}`
指定地址引用其他模板數據 模板起始地址是項目根目錄下的resources目錄