Yii Пользовательское поле ошибки

0

Привет, ребята, я пытаюсь создать собственное поле ошибок для всех моих моделей, где в этом поле будут содержаться все ошибки, которые когда-либо были текущим контроллером/действием. Например, например, в моем main.php:

<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>

мой вопрос: как я это сделаю? есть встроенный метод, который получает текущие ошибки моделей? должен ли я создать виджет для этого?

Заранее спасибо..

Теги:
yii

2 ответа

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 на main.php?
  • 0
    и как я получу текущую модель?
Показать ещё 5 комментариев
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, а не в представлении моделей ... поэтому он будет отображаться на макете динамически ... то, что вы предлагаете, будет только отображаться на конкретном контроллере / действии. Мне нужно было отобразить эти ошибки в отдельном представлении, в частности, в «макете», который не является частью моего представления моделей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню