请告诉我如何在Phalcon 3上使用setTemplateAfter方法设置时使模板无效,以免引用模板。
当前配置由IndexController ControllerBase扩展。
在ControllerBase的initialize方法中,使用setTemplateAfter设置模板,如下所示。
$this->view->setTemplateAfter('common');
在扩展的IndexController中,由于不需要模板,因此虽然执行了以下操作但仍会发生错误。
$this->view->setTemplateAfter('');
*我想我不想尽可能多地更改为ControllerBase,因为该模板是由另一个控制器使用的。
View 'layouts/' was not found in any of the views directory
#0 [internal function]: Phalcon\Mvc\View->_engineRender(Array, 'layouts/', false, true, NULL)
#1 [internal function]: Phalcon\Mvc\View->render('index', 'index')
#2 /mnt/raid/serverapps/www/lashca/public/index.php(42): Phalcon\Mvc\Application->handle()
#3 {main}
控制器/ ControllerBase.php
<?php
use Phalcon\Mvc\Controller;
class ControllerBase extends Controller
{
public function initialize()
{
$this->view->setTemplateAfter('common');
}
}
控制器/ IndexController.php
<?php
use Phalcon\Mvc\Controller;
class IndexController extends ControllerBase
{
public function indexAction()
{
$this->view->setTemplateAfter('');
}
}
答案 0 :(得分:1)
您可以通过$this->view->disable()
禁用某些级别的视图呈现。
例如,如果你想在&#34; -rendering之后禁用&#34;模板,你可以这样做:
$this->view->disableLevel([
View::LEVEL_AFTER_TEMPLATE => true
]);
如果要禁用其他级别的视图,请检查documentation。