setTemplateAfterメソッドにて一度設定したテンプレートを無効化して、テンプレートを参照しないようにする方法についてご教示ください。
###概況
現在の構成は、ControllerBaseをIndexControllerが継承。
ControllerBaseのinitializeメソッドの中で、以下の通りsetTemplateAfterでテンプレートを設定。
PHP
1$this->view->setTemplateAfter('common');
継承したIndexControllerではテンプレートは利用不要のため、以下を実行するがエラーが発生。
PHP
1$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}
###ソースコード
controllers/ControllerBase.php
PHP
1<?php 2use Phalcon\Mvc\Controller; 3class ControllerBase extends Controller 4{ 5 public function initialize() 6 { 7 $this->view->setTemplateAfter('common'); 8 } 9}
controllers/IndexController.php
PHP
1<?php 2use Phalcon\Mvc\Controller; 3class IndexController extends ControllerBase 4{ 5 public function indexAction() 6 { 7 $this->view->setTemplateAfter(''); 8 } 9}
###環境
- CentOS 7.4(x64)
- Apache 2.4.6
- PHP 7.0.26
- Phalcon Framework 3.2.4
- MySQL Ver 14.14 Distrib 5.6.38
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。