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'),
]);
-
enableClientValidationjest domyślnie włączone w ActiveForm. Jeśli nie potrzebujesz weryfikacji klienta w formie, możemy wyłączyć, przypisując jako fałsz. -
enableAjaxValidationjest 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]);