站三界导航
首页 TP代码TP5控制器中使用视图的三种方法

TP5控制器中使用视图的三种方法

  • TP代码
  • 来源:站三界导航
  • 85阅读
  • 2022-10-20

一、直接实例化视图类

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('站三界导航','www.zhansanjie.com');
    //渲染模板
    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>

二、继承控制器基类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','站三界导航');
    //$this->view->assign('domain','www.zhansanjie.com');
    $this->assign('siteName','站三界导航'); //用这种就可以,省事
    $this->assign('domain','www.zhansanjie.com'); //用这种就可以,省事
    //渲染模板
    //return $this->view->fetch();
    return $this->fetch(); //这样就行了
  }
}
?>

三、助手函数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'=>'www.zhansanjie.com',
        'siteName'=>'站三界导航'
    ]);
  }
}
?>

总结:在控制器使用视图来调用模板,有三种方法:实例化视图类的规范模式,基类继承的经典模式,助手函数的快捷模式,新人推荐基类继承方式,但长远来看,实例化视图类应该是发展趋势,助手函数早晚会消失~~~

本文结束
本文来自投稿,不代表站三界导航立场,如若转载,请注明出处:https://www.zhansanjie.com/article/details/23436.html

版权声明:

1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

2、本站仅提供信息发布平台,不承担相关法律责任。

3、若侵犯您的版权或隐私,请联系本站管理员删除。

4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。

分享
站三界导航
本站声明:本站严格遵守国家相关法律规定,非正规网站一概不予收录。本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,站三界导航不承担任何责任。在此特别感谢您对站三界导航的支持与厚爱。