模板赋值

除了系统变量和配置参数输出无需赋值外,其他变量如果需要在模板中输出必须首先进行模板赋值操作,绑定数据到模板输出有下面几种方式:

版本新增功能
5.0.4增加全局静态模板赋值方法share

assign方法

  1. namespace index\app\controller;
  2. class Index extends \think\Controller
  3. {
  4. public function index()
  5. {
  6. // 模板变量赋值
  7. $this->assign('name','ThinkPHP');
  8. $this->assign('email','thinkphp@qq.com');
  9. // 或者批量赋值
  10. $this->assign([
  11. 'name' => 'ThinkPHP',
  12. 'email' => 'thinkphp@qq.com'
  13. ]);
  14. // 模板输出
  15. return $this->fetch('index');
  16. }
  17. }

传入参数方法

方法fetch 及 display 均可传入模版变量,例如

  1. namespace app\index\controller;
  2. class Index extends \think\Controller
  3. {
  4. public function index()
  5. {
  6. return $this->fetch('index', [
  7. 'name' => 'ThinkPHP',
  8. 'email' => 'thinkphp@qq.com'
  9. ]);
  10. }
  11. }
  1. class Index extends \think\Controller
  2. {
  3. public function index()
  4. {
  5. $content = '{$name}-{$email}';
  6. return $this->display($content, [
  7. 'name' => 'ThinkPHP',
  8. 'email' => 'thinkphp@qq.com'
  9. ]);
  10. }
  11. }

助手函数

如果使用view助手函数渲染输出的话,可以使用下面的方法进行模板变量赋值:

  1. return view('index', [
  2. 'name' => 'ThinkPHP',
  3. 'email' => 'thinkphp@qq.com'
  4. ]);

share方法

V5.0.4+开始,支持在任何地方使用静态方法进行模板变量赋值,例如:

  1. think\View::share('name','value');
  2. // 或者批量赋值
  3. think\View::share(['name1'=>'value','name2'=>'value2']);

全局静态模板变量最终会和前面使用方法赋值的模板变量合并。