yii2
Yii2 ActiveForm
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'),
]);
-
enableClientValidation
is standaard ingeschakeld in ActiveForm. Als u geen klantvalidatie in formulier nodig hebt, kunnen we deze uitschakelen door als onwaar toe te wijzen. -
enableAjaxValidation
is standaard uitgeschakeld in ActiveForm. Als u dit wilt inschakelen, moeten we handmatig toevoegen in ActiveForm zoals hierboven. -
validationUrl
- als u alle validatiecodering in afzonderlijke controlleractie voor dit formulier wilt behouden, kunnen we het actieve formulier configureren metvalidationUrl
. 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]);