Skip to content

渲染

渲染用于将部件转化为 HTML 并输出到页面上。在 zin 页面中通过部件和指令定义页面内容,通过 render 方法将内容渲染到页面上。

渲染方法 render

定义

render 方法定义如下:

php
function render(string $wgName = '', array $options = null): void;

参数

参数定义如下:

  • $wgName:指定内容所渲染的目标部件名称,如果省略此参数则会自动根据请求类型使用合适的渲染部件;
  • $options 渲染选项。

默认渲染规则

$wgName 为空时,将根据请求类型自动选择渲染部件,规则如下:

  • 如果请求类型为 Ajax 对话框请求,则渲染到 对话框 modalDialog 部件上;
  • 如果请求类型为 Ajax 请求但不是 zin 页面请求(例如请求区块 HTML 片段),则渲染到 片段 fragment 部件上;
  • 如果请求类型为 zin 页面请求或浏览器普通请求(包括无感刷新操作或在浏览器单独打开),则渲染到 页面 page 部件上。

render 用法

简单使用

php
h1('Hello zin!');
btn('Click me!');

/* 将标题和按钮渲染到页面部件 page 内。 */
render();

省略 render 方法

当 render 方法不需要传入特殊参数时可以省略手动调用,ZentaoPHP 框架会自动调用默认的 render 方法。上例的可以简写为:

php
h1('Hello zin!');
btn('Click me!');

指定目标部件

php
h1('Hello zin!');
btn('Click me!');

/* 将标题和按钮渲染到对话框部件 modalDialog 内。 */
render('modalDialog');

根据请求类型渲染

通过 isAjaxRequest 方法判断请求类型,并根据请求类型渲染到不同的部件内:

php
$isInModal = isAjaxRequest('modal');

/* 根据请求类型添加不同的内容到页面。 */
if($isInModal)
{
    set::title('对话框标题');
}

h1('Hello zin!');
btn('Click me!');

/* 根据类型使用不同部件进行渲染输出。 */
render($isInModal ? 'modalDialog' : 'page');

当请求类型为 Ajax 对话框请求时,标题和按钮将渲染到 modalDialog 部件上,反之则渲染到 page 部件上。

https://zentao.net