2014-07-11 3 views
11

Pourriez-vous, s'il vous plaît, me dire comment afficher uniquement l'étiquette et l'erreur pour le champ par ActiveField dans Yii2? J'utilise Redactor et je veux afficher non seulement textarea, mais aussi les erreurs et l'étiquette. Merci.Comment afficher uniquement l'étiquette et l'erreur pour ActiveField dans Yii2

L'exemple de code est donné ci-dessous.

<?php $form = ActiveForm::begin(); ?> 

    <?php echo $form->errorSummary($model); ?> 

    <?= $form->field($model, 'title')->textInput(['maxlength' => 255]) ?> 

    <?php 
    echo yii\imperavi\Widget::widget(
     [ 
      'model' => $model, 
      'attribute' => 'text', 
      'options' => [], 
     ] 
    ); 
    ?> 
    <br /> 
    <div class="form-group"> 
     <?= Html::submitButton(
      $model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), 
      ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary'] 
     ) ?> 
    </div> 

    <?php ActiveForm::end(); ?> 

Répondre

5
<?php 
$field = $form->field($model, 'username', ['options' => ['class' => 'form-group col-sm-6']]); 
$field->template = "{label}\n{error}"; 
echo $field->textInput(['maxlength' => 255]); 
?> 
+0

Merci. Mais les erreurs ne sont pas affichées ( – frops

+0

) Vous devez utiliser $ template-> template = "{label} \ n {erreur} \ n {input}", sinon vous n'obtiendrez pas de champ de saisie –

14

essayer. J'ai donné l'option pour effectuer la correction

<?php 
    use yii\helpers\Html; 
    use yii\widgets\ActiveForm; 

    $form = \yii\widgets\ActiveForm::begin([ 
     'id' => 'form-id', 
     'options' => ['class' => 'form-horizontal'], 
     'enableClientValidation'=> true, 
     'enableAjaxValidation'=> false, 
     'validateOnSubmit' => true, 
     'validateOnChange' => true, 
     'validateOnType' => true, 
     'action' => 'youractionurl', 
     'validationUrl' => 'yourvalidationurl' 
    ]); 

    echo $form->field($model, 'fieldname')->begin(); 
     echo Html::activeLabel($model,'fieldname'); //label 
     echo Html::activeTextInput($model, 'fieldname'); //Field 
     echo Html::error($model,'fieldname', ['class' => 'help-block']); //error 
    echo $form->field($model, 'fieldname')->end(); 
    \yii\widgets\ActiveForm::end(); 
?> 
+2

Il ne valide pas du côté client –

+0

oui je l'utilise – Kshitiz

+0

Je cherchais cette solution depuis longtemps Je peux confirmer que la validation côté client fonctionne –

2

Cela aussi une décision, mais les erreurs ne sont toujours pas affichées.

$redactor = yii\imperavi\Widget::widget(
     [ 
      'model' => $model, 
      'attribute' => 'text', 
      'options' => [ 
       'minHeight' => 400, 
      ], 
     ] 
    ); 
$form->field($model, 'text', ['template' => "{error}\n{label}\n{hint}\n{$redactor}"])->textarea(); 
Questions connexes