企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 模板 The Yaf_View_Simple class 官方文档:http://www.laruence.com/manual/yaf.class.view.html Yaf_View_Simple是Yaf自带的视图引擎, 它追求性能, 所以并没有提供类似Smarty那样的多样功能, 和复杂的语法. 对于Yaf_View_Simple的视图模板, 就是普通的PHP脚本, 对于通过Yaf_View_Interface::assgin的模板变量, 可在视图模板中直接通过变量名使用. #### 使用$this->getView()->assign()在控制器中定义变量 `<?php class IndexController extends Yaf_Controller_Abstract { public function indexAction() { $mod = new UserModel(); $list = $mod->where('id',1)->get(); $this->getView()->assign("list", $list); $this->getView()->assign("title", "Smarty Hello World"); $this->getView()->assign("content", "Hello World"); }` #### 在模板文件中使用php脚本来输出 `<html> <head> <meta charset="utf-8"> <title><?php echo $title;?></title> </head> <body> <?php echo $content;?> <?php foreach($list as $val){?> <p><?php echo $val['username']?></p> <?}?> </body> </html>` ### 关闭Yaf框架里的自动加载模板 Yaf框架默认是开启自动加载模板的,如要关闭自动加载,可在Bootstrap.php里设置全局关闭,如: `<?php class Bootstrap extends Yaf_Bootstrap_Abstract { public function _initConfig() { Yaf_Registry::set('config', Yaf_Application::app()->getConfig()); Yaf_Dispatcher::getInstance()->autoRender(FALSE); // 关闭自动加载模板 } }` 单独关闭模板加载,可以需要关闭的控制器内利用Yaf_Dispatcher::getInstance()->disableView()操作: `<?php class IndexController extends Yaf_Controller_Abstract { /** * Controller的init方法会被自动首先调用 */ public function init() { /** * 如果是Ajax请求, 则关闭HTML输出 */ if ($this->getRequest()->isXmlHttpRequest()) { Yaf_Dispatcher::getInstance()->disableView(); } } } ?>` ### 手动调用指定模板 在控制器里手动调用的方式有2种: 一,调用当前$this->_module目录下的模版,下面是手动调用view/index/目录下hello.phtml模板 `<?php class IndexController extends Yaf_Controller_Abstract { public function indexAction() { $this->getView()->assign("content", "Hello World"); $this->display('hello'); } }` 二,随意调用view目录下的模板,下面是调用view/test/world.phtml模板 `<?php class IndexController extends Yaf_Controller_Abstract { public function indexAction() { $this->getView()->assign("content", "Hello World"); $this->getView()->display('test/world.phtml'); } }`