2013-09-23 76 views
0

你好我想創建一個自定義錯誤字段爲我的所有模型在這個領域將包含所有的錯誤什麼是當前的控制器/行動是..例如在我的主要。 php:Yii自定義錯誤字段

<header> 
... 
</header> 

<div id="container"> 
    <div id="my_custom_error_field"> 
     <?php //all models error goes in here ?> 
    </div> 

    <div id="dynamic_content"> 
     <?php echo $content; ?> 
    </div> 
</div> 

<footer> 
... 
</footer> 

我的問題是我將如何做到這一點? 是否有一個內置的方法,獲取當前的模型錯誤? 我應該爲此創建一個小部件嗎?

在此先感謝..

回答

0

如果您正在使用CActiveForm,您可以使用$form->errorSummary($model);

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'my-form', 
    'enableClientValidation'=>false, 
    'clientOptions'=>array(
     'validateOnSubmit'=>true, 
    ), 
)); ?> 

    <div id="my_custom_error_field"> 
     <?= $form->errorSummary($model); ?> 
    </div> 

    # The rest of the form goes here... 

    <?php echo CHtml::submitButton('Submit', array('class'=>'btn btn-primary')); ?> 

<?php $this->endWidget(); ?> 
+0

是我正在使用CActiveForm,但我需要做的是獲取所有的錯誤,並將其顯示在main.php模板上,而不是在模型視圖上..所以它會動態顯示在佈局上..什麼喲你建議只會顯示在一個特定的控制器/動作..我需要的是在單獨的視圖上顯示此錯誤,特別是「佈局」,這是不是我的模型視圖的一部分。 – NEWBIE

0

如果你想爲一個模型的所有錯誤,使用$model->getErrors();

<div id="my_custom_error_field"> 
    <?php 
     $errors = $model->getErrors(); 
     foreach($errors as $key => $error) { 
      // echo out to page 
     } 
    ?> 
</div> 
+0

我可以使用getErrors on main .PHP? – NEWBIE

+0

以及如何獲取當前模型? – NEWBIE

+0

通過控制器將模型傳遞給視圖? –