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'),
]);
  1. 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.
  2. enableAjaxValidation jest domyślnie wyłączone w ActiveForm. Jeśli chcesz to włączyć, musimy dodać ręcznie w ActiveForm, jak wyżej.
  3. 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]);


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow