2016-04-11 3 views
0

У меня есть мнение:ActiveForm yii2 по форме проверки ошибок

<?= $form->field($registration, 'username', 
      ['template' => '<div class="uk-form-row"> 
           <label for="register_username">{label}</label> 
           {input}{error} 
           </div>']) 
      ->textInput(['class' => 'md-input']) ?> 

И я хочу, чтобы добавить новый класс textInput после была вызвана ошибка. В модели есть некоторые правила для этого входа:

['username', 'string', 'min' => 2, 'max' => 255, 'message' => 'Can not be blank'], 
['username','required'] 

И, например, если я типа 1 символов, которые будут вызывать ошибку, которая будет говорить Can not be blank. Но также я хочу добавить md-input-danger класс на этот вход. Есть ли правильный способ сделать это?

ответ

0

Вы должны применить некоторые параметры к Форме:

$form = ActiveForm::begin([ 
    'layout' => 'horizontal', 
    'fieldConfig' => [ 
     'horizontalCssClasses' => [ 
      'error' => 'md-input-danger' 
     ], 
    ], 
]); 
+0

Он не добавляет или не меняет классы ввода. Предполагается ли это? Можете ли вы предоставить некоторую информацию о '' layout '=>' horizontal'' –

0

, если вы хотите использовать юй \ Web \ ActiveField посмотреть на:

yii-widgets-activefield.html#$errorOptions-detail

Код должен быть как:

$form = ActiveForm::begin([ 
    'fieldConfig' => [ 
     'errorOptions' => ['class' => 'md-input-danger'] 
    ], 
]); 

PS В коде Hutsi используется yii \ bootstrap \ ActiveField

+0

Согласно документации, это изменит сгенерированный тег ошибки. Не вход. «Параметры по умолчанию для тегов ошибок.» « –

+0

Я этого не делал, но, возможно, вы можете изменить свойство« селекторы »fieldConfig, чтобы указать на ваш ввод? И тогда errorOptions изменят непосредственно класс ввода. –