Selon le tutoriel officiel de Yii2. J'ai créé une vue pour le formulaire de saisie:
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>
<!-- GET Attention for the next Line -->
<?= $form->field($model, 'name')->label('Your Name'); ?>
<?= $form->field($model, 'email'); ?>
<div class="form-group">
<?= Html::submitButton('Send!', ['class' => 'btn btn-primary']); ?>
</div>
<?php ActiveForm::end(); ?>
À ce stade, tout va bien. Cependant, lorsque j'essaie d'utiliser le paramètre options
de la méthode field
comme suit:
<?= $form->field($model, 'name', ['style' => 'color:red'])->label('Your Name'); ?>
J'ai l'erreur
Propriété inconnue - yii\base\UnknownPropertyException
Définition de la propriété inconnue: yii\widgets\ActiveField :: style
La documentation officielle de l'api indique que la méthode d'ActiveForm utilise un troisième paramètre appelé options
Quelqu'un pourrait-il m'expliquer pourquoi cette erreur s'est produite?!
Essayer
<?= $form->field($model, 'name')->textInput(['style' => 'color:red'])->label('Your Name'); ?>
C'est un peu difficile à expliquer, quand vous faites $form->field($model, 'name')
sans spécifier le type de champ, vous demandez en réalité un textInput. Mais cela ne signifie pas que vous devriez demander à ->field(
de prendre les paramètres de la même manière que le fait ->textInput(
. Si vous devez définir des paramètres spéciaux pour le champ, vous devez utiliser la fonction ->textInput(['style' => 'color:red'])
explicite.
Essayez ce code:
<?= $form->field($model, 'name', [ 'options' => [ 'style' => 'color: red']])->label('Your Name'); ?>
Vous avez cette erreur
Unknown Property – yii\base\UnknownPropertyException
Setting unknown property: yii\widgets\ActiveField::style
parce qu'il n'y a pas un tel style de propriété. Vous devez utiliser 'options' et passer 'style' comme sous-tableau
Cette manière est pour les options d'especify sur tout le "champ" (qui inclut "l'étiquette" et "l'entrée") mais 'style' => 'couleur: rouge' n'affecte que l'étiquette de cette façon, je l'utilise pour especify options au lieu de couleur:
<?= $form->field($model, 'name', [ 'options' => [ 'class' => 'col-xs-8']])->label('Your Name'); ?>
Si vous souhaitez spécifier des options pour l'une d'entre elles (étiquette ou entrée), vous pouvez le faire séparément, comme ceci:
<?= $form->field($model, 'name')->textInput(['style' => 'color:red'])->label('Your Name',['style'=>'color:blue']); ?>
Yii est si flexible, c'est ce que j'aime bien.