1、直接将内容输出不通过模板。
Controller类里有个view实例,用它可输出,也可以用改类封装好的display方法。
view类里也有display方法。
所以:$this->display() 等效 $this->view->display()
还可以使用静态代理实现
\think\facade\View::display();
2、使用视图将数据输出:fetch()
1)模板变量赋值:assign()
(1)普通变量
$this->view->assign('name','cde');
(2)批量普通变量
$this->view->assign([
'name'=>'cde',
'age'=>28
]);
(3)数组
$this->view->assign('goods',[
'id'=>1,
'name'=>'cde'
])
(4)对象
$obj=new \stdClass();
$obj->id='1';(给这个标准类添加一个属性)
$this->view->assign('obj',$obj);
(5)常量
define('SITE_NAME','www.dan.cn');(在方法里不能用const来定义,只能在属性里声明,常量不用assign)
3、在模板中输出数据。
模板默认的目录位于当前模块的view目录,模板文件默认位于当前控制器命名的目录中。
return $this->view->fetch();
1)单个变量输出
{$name}
2)数组输出
{$goods.id}或{$goods['id']}
3)对象输出
{$obj->id}
4)输出常量
{$Think.const.SITE_NAME}
5)输出系统常量
{$Think.const.PHP_VERSION}
{$Think.const.PHP_OS}
6)输出系统变量
{$Think.server.php_self}(当前php脚本)
{$Think.server.session.id}(当前session)
{$Think.server.cookie.id}(当前cookie)
{$Think.config.database.hostname}(查看配置)
7)输出请求变量
{$Request.param.name}
{$Request.get.name}
{$Request.post.name}
{$Request.path}(当前路径,比如:index/demo7/test2)
{$Request.root}(当前根路径,比如:/index.php)
{$Request.root.true}(当前根路径+完整域名,比如:http://dan.cn/index.php)
{$Request.controller}(当前控制器,比如:Demo7)
{$Request.action}(当前方法,比如:test2)
{$Request.host}(当前主机,比如:dan.cn)
{$Request.ip}(当前根路径,比如:127.0.0.1) |