视图
浏览数 103471
视图文件存放在目录 /template 里,可以在任何文件位置使用全局函数 return_result() 进行视图模板的渲染,通常是在 controller 中渲染视图模板的,例如 return_result('welcome') 渲染的是 /template/welcome.php 模板,视图模板也可以多级目录存放,目录层级数没有限制,只要 return_result() 的第一个参数与模板路径一致就行。例如:return_result('school/student/list') 渲染的是 /template/school/student/list.php 模板。
return_result() 函数有三个参数,可以查看这个函数的实现。
/**
* @name 返回结果给前端
* @desc 返回结果可以是:输出html模板、JSON、JSONP,如果请求参数中有dtype参数,且值是JSON或JSONP,则返回其中之一的结果类型
* @param string $template 模板路径及名称
* @param array $data 需要输出的数据,即模板中使用到的数据
* @param boolean $return_html 如果为true,不直接输出HTML,而是返回HTML字符串
* @return string 或 结束请求
*/
function return_result($template, $data=[], $return_html=false){}
第一个参数 $template 为必选,是模板路径及名称,上一个段落中有示例介绍;
第二个参数 $data 为可选,需要在模板中使用的数据,例如传了数组 ['name' => 'Jim'] 过去,在模板中可以使用 echo $name 进行输出;
第三个参数 $resurn_html 为可选,在注释中已经描述得很清楚,不再多述。
布局模板
通常网站里所有页面的头部和底部是一样的,这时候我们可以使用布局模板让头部和底部可以复用,框架中自带的例子就使用到了布局,/template/layout/main.php 就是布局模板,它包含了网页的头部和底部,使用 <!--{$contents}--> 占位符(注意字符中间没有空格)输出其它的模板。在 /template/welcome.php 和 /template/show_msg.php 模板中都使用了该布局模板,使用方法就是在头部写上 <!--{use_layout layout/main}--> ,注意布局路径 layout/main 前有一个空格,其它位置没有空格。
普通模板可以调用布局模板,布局模板也可以调用布局模板,使用方法是一样的,最多可以调用20层布局模板,这个层级已经很夸张了,只有程序出错才可能调用到20层。
模板中除了能使用传递过来的参数,还可以使用所有的全局变量,比如 $project_root、$config、$app是可以直接使用的。程序先解析普通模板,再逐层向上解析布局模板,因此你可以在普通模板中定义的变量,在布局文件中是可以直接使用的,框架自带的例子中就在普通模板中定义了$head_info变量,在布局模板 layout/main 中将它输出给了head的相关信息中。