サーチ…


Yii2のフォームフィールド

新しい学習者のためのYii2のビューページの基本例を示す

これらはyii2 ActiveFormを使用してフォームを作成するために追加する必要がある基本クラスです

<?php

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

下の行は、フォームのIDを指定する方法と、フォームにクラスを適用する方法を示す例を示す、フォームのformタグを開始します。

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

ここで$ modelこの変数にここに格納されているモデルオブジェクトを、関連するコントローラから渡したフォームとバインドするデータベーステーブルフィールドを指定します。

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

'username'と 'password'は、値がバインドされるテーブルフィールドの名前です。

ここでは、コードの下にフォーム提出のための送信ボタンを入れ、ボタンテキストと基本的なCSSクラスとして 'ログイン'をそれに適用します。

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

ここではコードの下にフォームをクローズしています

<?php ActiveForm::end() ?>

パスワードフィールドの作成:

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

TextFieldを作成する:

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

隠しフォームフィールドを作成:

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

ドロップダウンの作成:

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

Idと名前を含むドロップダウンリスト

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

FileUploaderを作成する:

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

プレースホルダとカスタマイズされたラベルの追加

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

ActiveFormの検証

アクティブな形式でajaxとクライアントの検証を有効/無効にすることができます。

$form = ActiveForm::begin([
    'id' => 'signup-form',
    'enableClientValidation' => true,
    'enableAjaxValidation' => true,
    'validationUrl' => Url::to('signup'),
]);
  1. enableClientValidationは、デフォルトでActiveFormで有効になっています。フォームでクライアントの検証が必要ない場合は、falseとして割り当てることで無効にすることができます。
  2. enableAjaxValidationは、ActiveFormではデフォルトで無効になっています。有効にする場合は、上記のようにActiveFormで手動で追加する必要があります。
  3. validationUrl -あなたは、このフォームの別のコントローラのアクションですべての検証コーディングを維持したい場合は、我々が使用してのActiveFormを設定することができvalidationUrl 。これを設定しなかった場合は、フォームのアクション値が使用されます。

上記の2つの引数はフォーム全体に影響します。フォームの特定のフィールドに対してのみajax検証をチェックする場合は、その特定のフィールドに対してenableAjaxValidationを追加できます。フォーム全体ではなく、そのフィールドでのみ機能します。

たとえば、登録フォームで、ユーザー名を確認したい場合は、フォームに入力したユーザーの有効期限がすでに存在します。そのフィールドに対してこのenableAjaxValidation引数を使用できます。

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


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow