View 视图类
⚠️ View 构造函数为
private
,无法通过 new 方式实例化,仅通过 控制器 的getView
方法获得
// in controller-action
$view = $this->getView();
$view->assign([ 'foo' => 'bar' ]);
return $view->render('sample', [ 'hello' => 'world' ]);
View::assign
赋值到模板变量
View View::assign ( string $varname, mixed $value )
View View::assign ( array $vars )
参数
当传入 2 个参数时
$varname - 模板变量名
$value - 模板变量值当传入 1 个参数时
$vars - 模板变量数组返回值
当前视图实例,因此可以使用 链式调用范例
$view->assign('foo', 'bar')
->assign('vars', [1, 2, 3])
->assign(['hello' => 'world', 'a' => 1]);
// ----- OR -----
$view->assign([
'foo' => 'bar',
'vars' => [1, 2, 3],
'hello' => 'world',
'a' => 1,
]);
View::append
添加值到一个模板变量数组
View View::append ( string $varname, mixed $value )
如果模板变量中已存在该
$varname
且不是一个数组,则不添加
参数
$varname - 模板变量名
$value - 模板变量值,如果是 数组 则遍历添加返回值
当前视图实例,因此可以使用 链式调用范例
$view->append('foo', 'bar'); // 这时 $foo = ['bar']
// ...
$view->append('foo', 'hello') // 这时 $foo = ['bar', 'hello']
->append('foo', 'world') // 这时 $foo = ['bar', 'hello', 'world']
->append('foo', ['a', 'b']); // 最终 $foo = ['bar', 'hello', 'world', 'a', 'b']
View::render
渲染模板并返回渲染结果
string View::render ( string $tplname [, array $vars = null] )
参数
$tplname - 模板文件名,不需要包含.phtml
文件后缀
$vars - 需赋值到模板的变量数组,默认不设置返回值
渲染成功则返回渲染结果字符串,失败将抛出 * E404Exception * 异常范例
// 渲染 views/user/login.phtml
$view->assign([
'foo' => 'bar',
'vars' => [1, 2, 3],
]);
return $view->render('user/login');
// ----- OR -----
return $view->render('user/login', [
'foo' => 'bar',
'vars' => [1, 2, 3],
]);
模板方法
t
返回 HTML 转义结果
⚠️ 该方法只能在模板文件中使用
string t( string $string )
⚠️ 该方法已取消对
sprintf
格式的支持
参数
$string - 需要转义的字符串,支持sprintf
格式。关于格式,请查看 官方 sprintf 函数说明
$args - 如有使用格式,则该值为代入格式的值返回值
转义后的结果字符串范例
echo t('<h1>It works!</h1>'); // 输出 <h1>It works!</h1>
p
打印 HTML 转义结果
⚠️ 该方法只能在模板文件中使用
该方法内容结果同 t
方法,只是同时输出内容到页面
url
返回绝对路径
⚠️ 该方法只能在模板文件中使用
同 Azalea\url()
conf
获取配置项
⚠️ 该方法只能在模板文件中使用
同 Azalea\Config::get()
conf2
获取子配置项
⚠️ 该方法只能在模板文件中使用
同 Azalea\Config::getSub()