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]);