控制器模板赋值
优质
小牛编辑
134浏览
2023-12-01
变量如果要在模板中使用,就必须先进行模板赋值才可以,但系统变量和配置参数可以不用赋值(我们会在模板章节介绍如何输出)
控制器基类的assign方法
<?php
namespace app\demo\controller;
use cmf\controller\HomeBaseController;
class IndexController extends HomeBaseController
{
public function index()
{
// 单个变量赋值
$this->assign("hello", "Hello ThinkCMF!");
// 多个变量批量赋值
$this->assign([
'hello' => 'Hello ThinkCMF!',
'username' => '老猫'
]);
return $this->fetch(':index');
}
}
传入参数方法
控制器基类的fetch
和display
方法都可以通过参数传入模版变量,如: fetch方法:
<?php
namespace app\demo\controller;
use cmf\controller\HomeBaseController;
class IndexController extends HomeBaseController
{
public function index()
{
return $this->fetch(':index',[
'hello' => 'Hello ThinkCMF!',
'username' => '老猫'
]);
}
}
display 方法:
<?php
namespace app\demo\controller;
use cmf\controller\HomeBaseController;
class IndexController extends HomeBaseController
{
public function index()
{
$content = '{$hello}'."\n".'{$username}';
return $this->display($content,[
'hello' => 'Hello ThinkCMF!',
'username' => '老猫'
]);
}
}
View 类的assign方法
此方法支持在任何地方使用进行模板变量赋值,如:
\think\facade\View::assign('public_name', 'this is a name');
// 或者批量赋值
\think\facade\View::assign([
'public_name1' => 'this is a name1',
'public_name2' => 'this is a name2'
]);
通过此方法设置的模板变量最后会和上面几种方法赋值的变量合并。
变量输出
通过以上方法赋值后,就可以在模板里使用这些变量,这里演示一下变量的输出,更多变量操作会在模板章节说明;
<div>{$hello}</div>
<div>{$username}</div>