2014-12-26 37 views
4

我正在使用Yii 2,我想知道Yii是否有內置的任何內容來處理向用戶顯示的一般錯誤頁面。在Yii 2中向用戶顯示通用錯誤頁面

例如,您可能想向他們顯示一個常規錯誤頁面,因爲他們的註銷由於某種原因或一系列其他原因而失敗。你不想爲每種情況創建一個視圖的東西。

是否有這樣的東西可用,如果是這樣,你如何使用它?

+0

具體什麼是你感興趣的?查看官方文檔的這一部分http://www.yiiframework.com/doc-2.0/guide-runtime-handling-errors.html – arogachev

+0

我不認爲這就是我正在尋找的 - 是不是更多無法理解錯誤?像服務器錯誤?不是您編碼的錯誤,並且想要向用戶顯示自定義錯誤消息。 – Brett

+0

您可以在需要時拋出異常(例如註銷失敗),並且站點/錯誤視圖默認呈現。本節中描述的定製:http://www.yiiframework.com/doc-2.0/guide-runtime-handling-errors.html#using-error-actions – arogachev

回答

5

兩個基本和提前應用來與它在默認情況下:

'components' => [ 
.................. 
     'errorHandler' => [ 
      'errorAction' => 'site/error', 
     ], 
.............. 

class SiteController extends Controller 
............ 
public function actions() 
    { 
     return [ 
      'error' => [ 
       'class' => 'yii\web\ErrorAction', 
      ], 

你必須現在就拋出一個錯誤,你會看到頁面。

+0

謝謝。那麼對'yii \ web \ ErrorAction'的引用是做什麼的?你需要在每個模型中包含這個方法才能工作嗎? – Brett

+0

不,首先這是一個控制器不是模型,你不必將它放在每個控制器中,爲什麼你想在每個控制器中都有錯誤處理?你想擁有1個地方。 –

+0

對不起,意思是控制器。 – Brett

0

確保YII_DEBUG爲false。 如果YII_DEBUG爲true,則顯示錯誤堆棧。 您可以定義YII_DEBUG通過

1)的index.php

//remove the following lines when in production mode 
defined('YII_DEBUG') or define('YII_DEBUG', true); 
//specify how many levels of call stack should be shown in each log message 
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); 

OR

2).envFramework

YII_DEBUG = true 
YII_ENV  = dev