@Nemesys

Yii2 Active Form: как скрыть тег с ошибкой, если текста ошибки нет?

Использую Yii2. Имеем форму Active Form. В форме идет перечисление полей, вот одно поле к примеру:

<?= $form->field($model,  'name', [
    template' => "
        {label}
        {input}
        <span class=\"error\">{error}</span>"
]) ?>


Это выведет мне следующую разметку:

<label class="control-label" for="signupform-name">Name</label>
<input type="name" id="signupform-name" class="form-control" name="SignupForm[name]">
<span class="error">Ошибка! Поле не заполнено</span>


при этом, если ошибки нет, то span.error все равно будет отображаться (без текста):
<label class="control-label" for="signupform-name">Name</label>
<input type="name" id="signupform-name" class="form-control" name="SignupForm[name]">
<span class="error"></span>


Вопрос: можно ли сделать так, что если ошибки в поле нет, то пустой контейнер span.error не отображается (а отображается только тогда, когда есть ошибка)?

Желаемый результат, если ошибка НЕ возникла:
<label class="control-label" for="signupform-name">Name</label>
<input type="name" id="signupform-name" class="form-control" name="SignupForm[name]">


Желаемый результат, если возникла ошибка:
<label class="control-label" for="signupform-name">Name</label>
<input type="name" id="signupform-name" class="form-control" name="SignupForm[name]">
<span class="error">Возникла какая-то ошибка!</span>
  • Вопрос задан
  • 736 просмотров
Пригласить эксперта
Ответы на вопрос 1
IvanCher
@IvanCher
Мысли шире
<?= $form->field($model,  'name', [
    template' => "
        {label}
        {input}
        {error}",
    'errorOptions' => "
        'tag' => 'span',
        'class' => 'error',
    "
]) ?>
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы