模板赋值
除了系统变量和配置参数输出无需赋值外 其 变量如果需要在模板中输出必须首先进行模板赋值操作 否则会抛出异常 传递数据到模板输出有下面几种方式:
assign
方法
在控制器继承了系统的控制器基类的情况下 可以使用assign
方法进行模板变量赋值。
namespace indexappcontroller;
class Index extends thinkController
{
public function index()
{
// 模板变量赋值
$this->assign('name','ThinkPHP');
$this->assign('email','thinkphp@qq.com');
// 或批量赋值
$this->assign([
'name' => 'ThinkPHP',
'email' => 'thinkphp@qq.com'
]);
// 模板输出
return $this->fetch('index');
}
}
方法传入参数
方法fetch
及 display
均可传入模板变量 例如
namespace appindexcontroller;
class Index extends thinkController
{
public function index()
{
return $this->fetch('index', [
'name' => 'ThinkPHP',
'email' => 'thinkphp@qq.com'
]);
}
}
class Index extends thinkController
{
public function index()
{
$content = '{$name}-{$email}';
return $this->display($content, [
'name' => 'ThinkPHP',
'email' => 'thinkphp@qq.com'
]);
}
}
助手函数
如果使用view
助手函数渲染输出的话 可以使用下面的方法进行模板变量赋值:
return view('index', [
'name' => 'ThinkPHP',
'email' => 'thinkphp@qq.com'
]);
或
return view('index')->assign([
'name' => 'ThinkPHP',
'email' => 'thinkphp@qq.com'
]);
公共模板变量赋值
如果需要在控制器之外进行模板变量赋值 可以使用视图类的share
静态方法进行全局公共模板变量赋值 例如:
use thinkfacadeView;
// 赋值全局模板变量
View::share('name','value');
// 或批量赋值
View::share(['name1'=>'value','name2'=>'value2']);
全局静态模板变量最终会和前面使用方法赋值的模板变量合并。
尊贵的董事大人
英文标题不为空时 视为本栏投稿
需要关键字 描述 英文标题