Zoeken…


Formuliervelden in Yii2

Een basisvoorbeeld van de weergavepagina in Yii2 voor nieuwe studenten wordt weergegeven

Dit zijn basisklassen die u moet toevoegen om een formulier te maken met yii2 ActiveForm

<?php

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

De onderstaande regel start de formulier-tag voor ons formulier hieronder en toont een voorbeeld dat laat zien hoe id voor het formulier wordt opgegeven en hoe klassen kunnen worden toegepast op het formulier ..

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

Hier $ model Geef op welk databasetabelveld we willen binden met dat modelobject dat hier is opgeslagen in deze variabele die is doorgegeven door de relevante controller.

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

'gebruikersnaam' en 'wachtwoord' is de naam van het tabelveld waarmee onze waarde wordt gebonden.

Hier in de onderstaande code plaatsen we de verzendknop voor het verzenden van formulieren en passen we 'Inloggen' toe als knoptekst en basis css-klassen.

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

Hier in onderstaande code sluiten we het formulier

<?php ActiveForm::end() ?>

Maak wachtwoordveld:

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

Creëer TextField:

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

Maak een verborgen formulierveld:

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

Maak een vervolgkeuzelijst:

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

Vervolgkeuzelijst met ID en naam

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

Maak FileUploader:

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

Een tijdelijke aanduiding en een aangepast label toevoegen

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

ActiveForm-validaties

U kunt ajax en clientvalidaties in actieve vorm in- / uitschakelen.

$form = ActiveForm::begin([
    'id' => 'signup-form',
    'enableClientValidation' => true,
    'enableAjaxValidation' => true,
    'validationUrl' => Url::to('signup'),
]);
  1. enableClientValidation is standaard ingeschakeld in ActiveForm. Als u geen klantvalidatie in formulier nodig hebt, kunnen we deze uitschakelen door als onwaar toe te wijzen.
  2. enableAjaxValidation is standaard uitgeschakeld in ActiveForm. Als u dit wilt inschakelen, moeten we handmatig toevoegen in ActiveForm zoals hierboven.
  3. validationUrl - als u alle validatiecodering in afzonderlijke controlleractie voor dit formulier wilt behouden, kunnen we het actieve formulier configureren met validationUrl . Als we dit niet hebben ingesteld, krijgt het de actiewaarde van het formulier.

De bovenstaande twee argumenten hebben invloed op de hele vorm. Als u ajax-validatie alleen voor een bepaald veld in het formulier wilt controleren, kunt u enableAjaxValidation voor dat specifieke veld toevoegen. Het werkt alleen voor dat veld, niet de hele vorm.

In het registratieformulier wilt u bijvoorbeeld controleren of de gebruikersnaam al bestaat op het moment dat de gebruiker het formulier invoert. u kunt dit argument enableAjaxValidation voor dat veld gebruiken.

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow