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