yii2
Yii2 ActiveForm
Recherche…
Champs de formulaire en Yii2
Affichage de l'exemple de base de la page de vue dans Yii2 pour les nouveaux apprenants
Ce sont des classes de base que vous devez ajouter pour créer un formulaire en utilisant yii2 ActiveForm
<?php
Use yii\helpers\Html;
Use yii\widgets\ActiveForm;
La ligne Below va commencer la balise de formulaire pour notre formulaire ci-dessous, montrant l'exemple montre comment spécifier l'ID pour le formulaire et comment appliquer toutes les classes pour le formulaire.
$form =ActiveForm::begin([ 'id'=> 'login-form', 'options'=> ['class' => 'form-horizontal'],]) ?>
Ici $ model Indique le champ de la table de base de données que nous voulons lier à la forme de cet objet de modèle stocké ici dans cette variable qui a été transmise par le contrôleur correspondant.
<?= $form->field($model, 'username') ?>
<?= $form->field($model, 'password')->passwordInput() ?>
'nom d'utilisateur' et 'mot de passe' est le nom du champ de table avec lequel notre valeur sera liée.
Ici, dans le code ci-dessous, nous mettons le bouton "submit" pour la soumission de formulaire et lui appliquons "Login" comme texte de bouton et classes de base CSS.
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
</div>
</div>
Ici, dans le code ci-dessous, nous fermons le formulaire
<?php ActiveForm::end() ?>
Créer un champ de mot de passe:
<?= $form->field($model, 'password')->passwordInput() ?>
Créez TextField:
<?= $form->field($model, 'username') ?>
Créer un champ de formulaire masqué:
echo $form->field($model, 'hidden1')->hiddenInput()->label(false);
Créer une liste déroulante:
<?php echo $form->field($model, 'name')
->dropdownList(
Stud::find()->select(['name'])
->indexBy('name')->column(),
['prompt'=>'Select no']); ?>
Liste déroulante avec identifiant et nom
<?= $form->field($model, 'name')->dropDownList(
ArrayHelper::map(Stud::find()->all(), 'no', 'name'),['prompt' => 'Select Car Name']
) ?>
Créez FileUploader:
echo $form->field($model, 'imagepath')->fileInput();
Ajout d'un espace réservé et d'un libellé personnalisé
<?= $form->field($model, 'username')->textInput()->hint('Please enter your name')->label('Name') ?>
Validations ActiveForm
Vous pouvez activer / désactiver les validations ajax et client sous forme active.
$form = ActiveForm::begin([
'id' => 'signup-form',
'enableClientValidation' => true,
'enableAjaxValidation' => true,
'validationUrl' => Url::to('signup'),
]);
-
enableClientValidationest activé par défaut dans ActiveForm. Si vous n'avez pas besoin de valider le client sous forme, vous pouvez désactiver en attribuant la valeur false. -
enableAjaxValidationest désactivé par défaut dans ActiveForm. Si vous voulez l'activer, nous devons ajouter manuellement dans ActiveForm comme ci-dessus. -
validationUrl- Si vous souhaitez conserver tout le codage de validation dans une action de contrôleur distincte pour ce formulaire, vous pouvez configurer la forme active à l'aide devalidationUrl. Si nous ne définissons pas cela, cela prendra la valeur d'action du formulaire.
Les deux arguments ci-dessus affecteront la forme entière. Si vous souhaitez vérifier la validation ajax uniquement pour un champ particulier du formulaire, vous pouvez ajouter enableAjaxValidation pour ce champ particulier. Cela ne fonctionnera que pour ce champ non complet.
Par exemple, dans le formulaire d'inscription, vous souhaitez vérifier que le nom d'utilisateur existe déjà, la validation au moment de la saisie de l'utilisateur dans le formulaire. vous pouvez utiliser cet argument enableAjaxValidation pour ce champ.
echo $form->field($model, 'username', ['enableAjaxValidation' => true]);