Suche…


Formularfelder in Yii2

Ein einfaches Beispiel für die Ansichtsseite in Yii2 für neue Lernende anzeigen

Dies sind grundlegende Klassen, die Sie hinzufügen müssen, um mit yii2 ActiveForm ein Formular zu erstellen

<?php

Use yii\helpers\Html;
Use yii\widgets\ActiveForm;

In der unteren Zeile wird das Formular-Tag für unser Formular unten angezeigt. Es zeigt ein Beispiel, wie die ID für das Formular angegeben wird und wie Klassen für das Formular angewendet werden.

$form =ActiveForm::begin([   'id'=> 'login-form',   'options'=> ['class' => 'form-horizontal'],]) ?>

Here $ model Geben Sie an, welches Datenbanktabellenfeld mit diesem Modellobjekt verknüpft werden soll, das hier in dieser Variablen gespeichert ist, die vom entsprechenden Controller übergeben wurde.

   <?= $form->field($model, 'username') ?>
   <?= $form->field($model, 'password')->passwordInput() ?>

'Benutzername' und 'Passwort' ist der Name des Tabellenfeldes, an das unser Wert gebunden wird.

Im folgenden Code wird der Submit-Button für die Formularübermittlung eingefügt und "Login" als Button-Text und grundlegende CSS-Klassen angewendet.

 <div class="form-group">
       <div class="col-lg-offset-1 col-lg-11">
           <?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
       </div>
   </div>

Hier unten im Code schließen wir das Formular aus

<?php ActiveForm::end() ?>

Passwortfeld erstellen:

<?= $form->field($model, 'password')->passwordInput() ?>

Textfeld erstellen:

<?= $form->field($model, 'username') ?>

Verstecktes Formularfeld erstellen:

echo $form->field($model, 'hidden1')->hiddenInput()->label(false);

Dropdown erstellen:

<?php echo $form->field($model, 'name')
->dropdownList(
Stud::find()->select(['name'])
->indexBy('name')->column(),
['prompt'=>'Select no']); ?>

Dropdown-Liste mit ID und Name

<?= $form->field($model, 'name')->dropDownList(
            ArrayHelper::map(Stud::find()->all(), 'no', 'name'),['prompt' => 'Select Car Name']
 ) ?>

FileUploader erstellen:

echo $form->field($model, 'imagepath')->fileInput();

Platzhalter und benutzerdefinierte Beschriftung hinzufügen

 <?= $form->field($model, 'username')->textInput()->hint('Please enter your  name')->label('Name') ?>

ActiveForm-Überprüfungen

Sie können AJAX- und Client-Validierungen in aktiver Form aktivieren / deaktivieren.

$form = ActiveForm::begin([
    'id' => 'signup-form',
    'enableClientValidation' => true,
    'enableAjaxValidation' => true,
    'validationUrl' => Url::to('signup'),
]);
  1. enableClientValidation ist standardmäßig in ActiveForm aktiviert. Wenn Sie keine Client-Validierung in Form benötigen, können Sie sie als falsch deaktivieren.
  2. enableAjaxValidation ist in ActiveForm standardmäßig deaktiviert. Wenn Sie es aktivieren möchten, müssen Sie es wie oben manuell in ActiveForm hinzufügen.
  3. validationUrl - Wenn Sie die gesamte Validierungscodierung in einer separaten Controller-Aktion für dieses Formular beibehalten möchten, können Sie die aktive Form mithilfe von validationUrl konfigurieren. Wenn wir dies nicht festgelegt haben, wird der Aktionswert des Formulars übernommen.

Die beiden obigen Argumente wirken sich auf die gesamte Form aus. Wenn Sie die Ajax-Validierung nur für ein bestimmtes Feld im Formular prüfen möchten, können enableAjaxValidation für dieses bestimmte Feld enableAjaxValidation hinzufügen. Es funktioniert nur für dieses Feld und nicht für das gesamte Formular.

Zum Beispiel möchten Sie im Anmeldeformular überprüfen, ob der Benutzername bereits gültig ist, sobald der Benutzer das Formular eingegeben hat. Sie können dieses Argument enableAjaxValidation für dieses Feld verwenden.

echo $form->field($model, 'username', ['enableAjaxValidation' => true]);


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow