Sök…


Formfält i Yii2

Visar grundexempel på visningssidan i Yii2 för nya elever

Det här är grundklasser du måste lägga till för att skapa formulär med yii2 ActiveForm

<?php

Use yii\helpers\Html;
Use yii\widgets\ActiveForm;

Nedre raden kommer att starta formtaggen för vårt formulär nedan och visar exempel visar hur man anger ID för formuläret och hur man använder några klasser för formuläret.

$form =ActiveForm::begin([   'id'=> 'login-form',   'options'=> ['class' => 'form-horizontal'],]) ?>

Här $ -modell Ange vilket databastabellfält vi vill binda med formen av det modellobjekt som är lagrat här i denna variabel som har skickats från relevant kontroller.

   <?= $form->field($model, 'username') ?>
   <?= $form->field($model, 'password')->passwordInput() ?>

"användarnamn" och "lösenord" är namnet på tabellfältet som vårt värde kommer att vara bundet till.

Här i koden nedan lägger vi skicka knappen för formulärinlämning och tillämpar 'logga in' som knapptext och grundläggande css-klasser på den.

 <div class="form-group">
       <div class="col-lg-offset-1 col-lg-11">
           <?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
       </div>
   </div>

Här i koden nedan stänger vi formuläret

<?php ActiveForm::end() ?>

Skapa lösenordsfält:

<?= $form->field($model, 'password')->passwordInput() ?>

Skapa TextField:

<?= $form->field($model, 'username') ?>

Skapa dold formfält:

echo $form->field($model, 'hidden1')->hiddenInput()->label(false);

Skapa dropdown:

<?php echo $form->field($model, 'name')
->dropdownList(
Stud::find()->select(['name'])
->indexBy('name')->column(),
['prompt'=>'Select no']); ?>

Listrutan med ID och namn

<?= $form->field($model, 'name')->dropDownList(
            ArrayHelper::map(Stud::find()->all(), 'no', 'name'),['prompt' => 'Select Car Name']
 ) ?>

Skapa FileUploader:

echo $form->field($model, 'imagepath')->fileInput();

Lägga till en platshållare och anpassat etikett

 <?= $form->field($model, 'username')->textInput()->hint('Please enter your  name')->label('Name') ?>

ActiveForm-valideringar

Du kan aktivera / inaktivera ajax- och klientvalideringar i aktiv form.

$form = ActiveForm::begin([
    'id' => 'signup-form',
    'enableClientValidation' => true,
    'enableAjaxValidation' => true,
    'validationUrl' => Url::to('signup'),
]);
  1. enableClientValidation är som standard aktiverad i ActiveForm. Om du inte behöver klientvalidering i form kan vi inaktivera genom att tilldela som falskt.
  2. enableAjaxValidation är som standard inaktiverad i ActiveForm. Om du vill aktivera det måste vi lägga till manuellt i ActiveForm som ovan.
  3. validationUrl - om du vill behålla all valideringskodning i en separat controlleråtgärd för detta formulär kan vi konfigurera den aktiva formen med validationUrl . Om vi inte ställde in detta kommer det att ta formulärets handlingsvärde.

Ovanstående två argument kommer att påverka för hela formen. Om du bara vill kontrollera ajax-validering för ett särskilt fält i formuläret kan du lägga till enableAjaxValidation för det specifika fältet. Det fungerar bara för det fältet inte hela formen.

I registreringsformuläret vill du till exempel kontrollera att användarnamnet redan finns validering när användaren skriver in formuläret. Du kan använda detta enableAjaxValidation argument för det fältet.

echo $form->field($model, 'username', ['enableAjaxValidation' => true]);


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow