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中:

  1.  
    <?php
  2.  
    namespace app\index\controller;
  3.  
    use think\View;
  4.  
    class Index
  5.  
    {
  6.  
    public function index()
  7.  
    {
  8.  
    //动态创建
  9.  
    //$view = new View();
  10.  
    //静态创建
  11.  
    $view = View::instance();
  12.  
    //模板赋值
  13.  
    $view -> assign( 'domain','www.php.cn');
  14.  
    //渲染模板
  15.  
    return $view -> fetch();
  16.  
    }
  17.  
    }
  18.  
    ?>

在application\index\view\index\index.html中:

  1.  
    <p>网站域名:<span style="color:red">{$domain}</span></p>
  2.  
    <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中:

  1.  
    <?php
  2.  
    namespace app\index\controller;
  3.  
    use think\Controller;
  4.  
    class Index extends Controller
  5.  
    {
  6.  
    public function index()
  7.  
    {
  8.  
    //$this->view===>视图对象
  9.  
    //$this->view->assign('siteName','php中文网');
  10.  
    //$this->view->assign('domain','www.php.cn');
  11.  
    $this->assign('siteName','php中文网'); //用这种就可以,省事
  12.  
    $this->assign('domain','www.php.cn'); //用这种就可以,省事
  13.  
    //渲染模板
  14.  
    //return $this->view->fetch();
  15.  
    return $this->fetch(); //这样就行了
  16.  
    }
  17.  
    }
  18.  
    ?>

3、助手函数view()

1、不用继承Controller基类,不用实例化View类,都可以使用;
2、仅适合于模板渲染,功能单一,不能加载配置;
3、语法:view([模板文件],[模板变量数组],[模板替换数组]);
4、使用方法实例:view('user',['name'=>'tp5'],['SITE'=>'php.cn']);
所以,index.php文件夹中就变为了:

  1.  
    <?php
  2.  
    namespace app\index\controller;
  3.  
    class Index
  4.  
    {
  5.  
    public function index()
  6.  
    {
  7.  
     
  8.  
    return view('index',[
  9.  
    'domain'=>'php.cn',
  10.  
    'siteName'=>'php中文网'
  11.  
    ]);
  12.  
    }
  13.  
    }
  14.  
    ?>

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM