yii2
Yii2 ActiveForm
サーチ…
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'),
]);
-
enableClientValidation
は、デフォルトでActiveFormで有効になっています。フォームでクライアントの検証が必要ない場合は、falseとして割り当てることで無効にすることができます。 -
enableAjaxValidation
は、ActiveFormではデフォルトで無効になっています。有効にする場合は、上記のようにActiveFormで手動で追加する必要があります。 -
validationUrl
-あなたは、このフォームの別のコントローラのアクションですべての検証コーディングを維持したい場合は、我々が使用してのActiveFormを設定することができvalidationUrl
。これを設定しなかった場合は、フォームのアクション値が使用されます。
上記の2つの引数はフォーム全体に影響します。フォームの特定のフィールドに対してのみajax検証をチェックする場合は、その特定のフィールドに対してenableAjaxValidation
を追加できます。フォーム全体ではなく、そのフィールドでのみ機能します。
たとえば、登録フォームで、ユーザー名を確認したい場合は、フォームに入力したユーザーの有効期限がすでに存在します。そのフィールドに対してこのenableAjaxValidation
引数を使用できます。
echo $form->field($model, 'username', ['enableAjaxValidation' => true]);