1. 程式人生 > >TP5控制器中使用檢視的三種方法

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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。