2017-06-27 1 views
0

Actuellement, j'utilise Yii2 et j'apprends toujours.Dupliquer le type d'entrée à la volée puis valider (le cas échéant) lors de la soumission

J'ai une question concernant la validation en code html dynamique.

S'il vous plaît voir ci-dessous les détails:

Code d'origine:

<?= $form->field($model, "[{$i}]name")->textInput(['class' => 'model form-control'])?> 

En cliquant sur "ajouter une nouvelle zone de texte (4x)" à la volée (dynamique), les codes ci-dessus seront ajoutés, voir ci-dessous:

<input type="text" name="Model[1][name]" class="model form-control"> 
 
<input type="text" name="Model[2][name]" class="model form-control"> 
 
<input type="text" name="Model[3][name]" class="model form-control"> 
 
<input type="text" name="Model[4][name]" class="model form-control">

Comment puis-je valider tout le texte d'entrée si sa valeur existe déjà dans la base de données (renvoyer un message s'il existe dans l'ordre, par exemple, si la valeur d'entrée text1 existe ... etc.)?

Serait-il possible de valider sans utiliser JS?

Répondre

0

Votre modèle:

class MyModel extends Model 
{ 
    /** 
    * @var [] name 
    */ 
    public $name = []; 

    public function rules() 
    { 
     return [ 
      // http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html#each 
      ['name', 'each', /*validation rules*/] 
     ]; 
    } 
} 

Vos champs:

<?= $form->field($model, "name[{$i}]")->textInput(['class' => 'model form-control'])?>