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