注:用户访问URL对应的是一个控制器,控制器与模型(数据库)交互,然后把处理完的数据前给视图,视图负责展现数据。
1.视图文件必须保存在模块下view目录下->和控制器名称一致的目录下面,HTML文件必须和控制器中的方法完全一致。
2.视图功能由\think\View类配合视图驱动(也即模板引擎驱动)类一起完成,目前的内置模板引擎包含PHP原生模板和Think模板引擎。
3.内容输出有三种方法,推荐:控制器的
view实例的display方法,输出内容::推荐方法,可读性强。
<?phpnamespace app\index\controller;use think\Controller;use think\facade\View;class Demo7 extends Controller{//直接将内容输出到页面,不通过模板:3种方法public function test1(){$content = '<h3 style="color: blue">PHP中文网欢迎你</h3>';//1.控制器的display方法,输出内容// return $this->display($content);//2.控制器的view实例的display方法,输出内容::推荐方法,可读性强return $this->view->display($content);//3.静态代理类view方式,输出内容// return View::display($content);}//使用视图将数据进行输出:fatch()public function test2(){//模板变量赋值:assign()//1.普通变量$this->view->assign('name','mhr');$this->view->assign('age','99');//2.批量赋值$this->view->assign(['sex'=>'男','salary'=>666]);//2.数组输出$this->view->assign('goods',['id'=>1,'name'=>'手机','model'=>'mate10','price'=>6500,]);//3.输出对象$obj = new \stdClass();$obj->course = 'php';$obj->lecture = 'zhangsan';$this->view->assign('info',$obj);//4.常量输出define('SITE_NAME','PHP中文网');//在模板中输出数据//模板默认的目录位于当前模块的View目录,模板文件默认位于当前控制器命名的目录中,即模块/view下面return $this->view->fetch();}}
模板文件示例:
{$name}<br>{$age}<br>{$sex}<br>{$salary}<br><hr>{//输出数组}<br>{$goods.id}<br>{$goods.name}<br>{$goods.model}<br>{$goods.price}<br><hr>{//输出对象}<br>{$info->course}<br>{$info->lecture}<br><hr>{//输出常量}<br>{$Think.const.SITE_NAME}<hr>{//输出PHP系统常量}<br>{$Think.const.PHP_VERSION}<br>{$Think.const.PHP_OS}<br><hr>{//输出系统变量}<br>{$Think.server.php_self}<br>{$Think.server.session}<br>{$Think.server.get.name}<br>{$Think.server.post.name}<br><hr>{//输出TP配置}<br>{$Think.config.database.hostname}<br><hr>{//输出请求变量}<br>{$Request.get.name}<br>{$Request.post.name}<br>{$Request.param.name}<br>{$Request.path}<br>{$Request.root}<br>{$Request.root.true}<br>{$Request.controller}<br>{$Request.action}<br>{$Request.host}<br>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号