yii2
Yii2 ActiveForm
Szukaj…
Formularz pól w Yii2
Pokazuje podstawowy przykład strony widoku w Yii2 dla nowych uczniów
Są to podstawowe klasy, które należy dodać, aby utworzyć formularz za pomocą yii2 ActiveForm
<?php
Use yii\helpers\Html;
Use yii\widgets\ActiveForm;
Poniższy wiersz rozpocznie znacznik formularza dla naszego formularza poniżej pokazujący przykład pokazujący, jak określić identyfikator formularza i jak zastosować dowolne klasy dla formularza.
$form =ActiveForm::begin([ 'id'=> 'login-form', 'options'=> ['class' => 'form-horizontal'],]) ?>
Tutaj $ model Określ, które pole tabeli bazy danych chcemy powiązać z formularzem tego obiektu modelu przechowywanego tutaj w tej zmiennej, która została przekazana z odpowiedniego kontrolera.
<?= $form->field($model, 'username') ?>
<?= $form->field($model, 'password')->passwordInput() ?>
„nazwa użytkownika” i „hasło” to nazwa pola tabeli, z którą zostanie powiązana nasza wartość.
W poniższym kodzie umieszczamy przycisk Prześlij do formularza i stosujemy do niego „Zaloguj się” jako Tekst przycisku i podstawowe klasy css.
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
</div>
</div>
Tutaj w poniższym kodzie zamykamy formularz
<?php ActiveForm::end() ?>
Utwórz pole hasła:
<?= $form->field($model, 'password')->passwordInput() ?>
Utwórz TextField:
<?= $form->field($model, 'username') ?>
Utwórz ukryte pole formularza:
echo $form->field($model, 'hidden1')->hiddenInput()->label(false);
Utwórz menu rozwijane:
<?php echo $form->field($model, 'name')
->dropdownList(
Stud::find()->select(['name'])
->indexBy('name')->column(),
['prompt'=>'Select no']); ?>
Lista rozwijana z identyfikatorem i nazwą
<?= $form->field($model, 'name')->dropDownList(
ArrayHelper::map(Stud::find()->all(), 'no', 'name'),['prompt' => 'Select Car Name']
) ?>
Utwórz FileUploader:
echo $form->field($model, 'imagepath')->fileInput();
Dodawanie symbolu zastępczego i niestandardowej etykiety
<?= $form->field($model, 'username')->textInput()->hint('Please enter your name')->label('Name') ?>
Walidacje ActiveForm
Możesz włączyć / wyłączyć sprawdzanie poprawności ajax i klienta w aktywnej formie.
$form = ActiveForm::begin([
'id' => 'signup-form',
'enableClientValidation' => true,
'enableAjaxValidation' => true,
'validationUrl' => Url::to('signup'),
]);
-
enableClientValidation
jest domyślnie włączone w ActiveForm. Jeśli nie potrzebujesz weryfikacji klienta w formie, możemy wyłączyć, przypisując jako fałsz. -
enableAjaxValidation
jest domyślnie wyłączone w ActiveForm. Jeśli chcesz to włączyć, musimy dodać ręcznie w ActiveForm, jak wyżej. -
validationUrl
- jeśli chcesz zachować całe kodowanie sprawdzania poprawności w osobnej akcji kontrolera dla tego formularza, możemy skonfigurować aktywny formularz za pomocąvalidationUrl
. Jeśli nie ustawiliśmy tego, przyjmie wartość akcji formularza.
Powyższe dwa argumenty wpłyną na całą formę. Jeśli chcesz sprawdzić walidację ajax tylko dla określonego pola w formularzu, możesz dodać enableAjaxValidation
dla tego konkretnego pola. Będzie działać tylko dla tego pola, a nie dla całej formy.
Na przykład w formularzu rejestracyjnym chcesz sprawdzić, czy nazwa użytkownika już istnieje sprawdzanie poprawności w momencie wpisania przez użytkownika formularza. możesz użyć tego argumentu enableAjaxValidation
dla tego pola.
echo $form->field($model, 'username', ['enableAjaxValidation' => true]);