3
我想呈現錯誤模板(例如error400.ctp),但默認佈局(網站頁眉和頁腳)依賴於組件和變量在AppController中設置。如何讓Cake在渲染錯誤頁面時使用AppController?是否有可能在錯誤頁面上使用AppController? (CakePHP 3.1)
我已經嘗試過製作一個擴展AppController的ErrorController,但是它因缺少的操作而中斷。
我想呈現錯誤模板(例如error400.ctp),但默認佈局(網站頁眉和頁腳)依賴於組件和變量在AppController中設置。如何讓Cake在渲染錯誤頁面時使用AppController?是否有可能在錯誤頁面上使用AppController? (CakePHP 3.1)
我已經嘗試過製作一個擴展AppController的ErrorController,但是它因缺少的操作而中斷。
下面是任何人的情況下我的工作ErrorController來尋找它:
<?php
namespace App\Controller;
use App\Controller\AppController;
use Cake\Event\Event;
class ErrorController extends AppController
{
public function beforeRender(Event $event)
{
parent::beforeRender($event);
$this->viewBuilder()->templatePath('Error');
}
}
有在AppController中加載在我的組件中的一個錯誤。當ErrorController擴展AppController並且試圖訪問控制器中的無效操作時,它會創建兩個AppController實例,在我的情況下,由於組件中存在一個錯誤而導致類錯誤的重複聲明被拋出。此錯誤導致某種循環導致錯誤頁面無法呈現。
我知道,那不是我的問題。即使關閉調試,錯誤視圖也不會使用AppController。 –
然後,檢查[this](http://stackoverflow.com/questions/30315153/cakephp-3-var-not-transmitted-to-view-when-exception-thrown)。 – Holt
'它爲缺少的動作打斷了。' - 這可能意味着拋出異常_whilst_嘗試呈現錯誤頁面。異常渲染器[簡單地使用你的錯誤控制器](https://github.com/cakephp/cakephp/blob/master/src/Error/ExceptionRenderer.php#L111-L114) - 如果它存在,[回落使用控制器對象](https://github.com/cakephp/cakephp/blob/master/src/Error/ExceptionRenderer.php#L129-L131)如果失敗。一些調試可能會幫助你解決你自己的問題。 – AD7six