yii2
Yii2 ActiveForm
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'),
]);
-
enableClientValidation
är som standard aktiverad i ActiveForm. Om du inte behöver klientvalidering i form kan vi inaktivera genom att tilldela som falskt. -
enableAjaxValidation
är som standard inaktiverad i ActiveForm. Om du vill aktivera det måste vi lägga till manuellt i ActiveForm som ovan. -
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 medvalidationUrl
. 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]);