TP5控制器中使用檢視的三種方法
1、直接例項化檢視類
1、檢視類: thinkphp/library/think/View.php;
2、名稱空間: use think\View;
3、例項化: 動態 new View(); 靜態 View::instance();
4、常用方法: fetch()渲染模板, display()渲染內容, assign()模板賦值
在index/controller/index.php中:
<?php namespace app\index\controller; use think\View; class Index { public function index() { //動態建立 //$view = new View(); //靜態建立 $view = View::instance(); //模板賦值 $view -> assign('domain','www.php.cn'); //渲染模板 return $view -> fetch(); } } ?>
在application\index\view\index\index.html中:
<p>網站域名:<span style="color:red">{$domain}</span></p>
<p>網站名稱:<span style="color:red">{$siteName}</span></p>
2、繼承控制器基類Controller
1、控制器類:thinkphp/library/think/Controller.php;
2、名稱空間:use think\Controller;
3、例項化:$this->view;//可訪問View類所有屬性或方法
4、常用方法:$this->fetch()渲染模板,$this->display()渲染內容,$this->assign()模板賦值,$this->engine()模板引擎
在index.php中:
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { //$this->view===>檢視物件 //$this->view->assign('siteName','php中文網'); //$this->view->assign('domain','www.php.cn'); $this->assign('siteName','php中文網'); //用這種就可以,省事 $this->assign('domain','www.php.cn'); //用這種就可以,省事 //渲染模板 //return $this->view->fetch(); return $this->fetch(); //這樣就行了 } } ?>
3、助手函式view()
1、不用繼承Controller基類,不用例項化View類,都可以使用;
2、僅適合於模板渲染,功能單一,不能載入配置;
3、語法:view([模板檔案],[模板變數陣列],[模板替換陣列]);
4、使用方法例項:view('user',['name'=>'tp5'],['SITE'=>'php.cn']);
所以,index.php資料夾中就變為了:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
return view('index',[
'domain'=>'php.cn',
'siteName'=>'php中文網'
]);
}
}
?>
總結:在控制器使用檢視來呼叫模板,有三種方法:例項化檢視類的規範模式,基類繼承的經典模式,助手函式的快捷模式,新人推薦基類繼承方式,但長遠來看,例項化檢視類應該是發展趨勢,助手函式早晚會消失~~~
作者:傲嬌的泰迪
連結:https://www.jianshu.com/p/6a0ee69b047b
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。