Isolution666
@Isolution666
Full-Stack Developer

Как вывести результат валидации в отдельном месте, Yii?

Здравствуйте.
--
Ситуация: Нужно чтобы результат валидации происходил в определённом месте в верстке.
Нарвался на код, который выводит якобы все ошибки конкретной формы:

<?php $form = ActiveForm::begin([ 'options' => ['class' => 'form']]); ?>
<?=$form->errorSummary($model);?>
<?php ActiveForm::end(); ?>


Но выводится:
<div class="error-summary" style="display: block;">
<p>Исправьте следующие ошибки:</p>
<ul></ul>
</div>


В итоге я подумал, и решил обмануть систему вот так:

...
<?= $form->field($model, 'image', ['template' => '{input}'])->fileInput(['class' => 'upload'])->label(false);?>
...
<?= $form->field($model, 'image', ['template' => '<div class="block">{error}</div>'])->label(false);?>
...


В итоге, в месте ошибки вылезает html- код:
<div class="form-group field-post-image">
   <div class="block">
      <div class="help-block"></div>
   </div>
 </div>

Что хорошо, так как нет двух инпутов, а только вёрстка для ошибок. Я не знаю, правильно ли так делать, может в Yii2 есть более простой способ, который придумали до того как костыли и велосипеды захватили код Земли.

ВОПРОС: Есть ли какой-то более менее правильный, безопасный, чистый код, решение, которое выведет текст валидации где я хочу, а не под инпутом по дефолту?

P.S. Чтобы было понятнее, валидация и текст нужен только для кнопки file, остальные параметры проверять не нужно они проходят через контроллер, так как мне нужно скрыть hiddenInput() от злых глаз злоумышленников. В общем вёрстка такая, что нужно выводит в специально отведённом месте. Проверяются только прикреплённые файлы.
  • Вопрос задан
  • 389 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Доброе утро.
Исправьте <?=$form->errorSummary($model);?> на <?=$model->getErrors();?> и выводите в любом месте вёрстки.
Или, в Вашем варианте, добавьте вторым параметром массив, где и укажите, как выводить и где выводить.
www.yiiframework.com/doc-2.0/yii-widgets-activefor...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
slo_nik прав + добавлю что теги с ошибками проще убрать так ->error(false)
www.yiiframework.com/doc-2.0/yii-widgets-activefie...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы