wake-up-neo.net

Yii2 ActiveForm-Feldoptionen funktionieren nicht

Laut offiziellem Tutorial von Yii2. Ich habe eine Ansicht für das Anmeldeformular erstellt:

    <?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(); ?>

An diesem Punkt ist alles gut. Wenn ich jedoch versuche, den Parameter options der field-Methode wie folgt zu verwenden:

<?= $form->field($model, 'name', ['style' => 'color:red'])->label('Your Name'); ?>

Ich habe den Fehler erhalten:

Unknown-Eigenschaft - yii\base\UnknownPropertyException

Festlegen einer unbekannten Eigenschaft: yii\widgets\ActiveField :: style

Die offizielle API-Dokumentation stellte fest, dass die Methode von ActiveForm einen dritten Parameter namens options verwendet

Könnte mir irgendjemand erklären, warum dieser Fehler aufgetreten ist ?! 

10
SaidbakR

Versuchen

<?= $form->field($model, 'name')->textInput(['style' => 'color:red'])->label('Your Name'); ?>

Es ist etwas schwierig zu erklären, wenn Sie $form->field($model, 'name') ausführen, ohne den Feldtyp anzugeben, den Sie tatsächlich nach einem textInput fragen. Das bedeutet jedoch nicht, dass Sie von ->field( die gleichen Parameter wie ->textInput( nehmen sollen. Wenn Sie spezielle Parameter für das Feld eingeben müssen, müssen Sie die explizite ->textInput(['style' => 'color:red']) verwenden.

13
Mihai P.

Versuchen Sie diesen Code:

<?= $form->field($model, 'name', [ 'options' => [ 'style' => 'color: red']])->label('Your Name'); ?>

Sie haben diesen Fehler erhalten

Unknown Property – yii\base\UnknownPropertyException

Setting unknown property: yii\widgets\ActiveField::style

weil es keinen solchen Immobilienstil gibt. Sie sollten 'options' verwenden und 'style' als Unterfeld übergeben

5
tsanchev

Diese Methode dient zum Festlegen von Optionen für alle "Felder" (einschließlich "Beschriftung" und "Eingabe"), aber 'style' => 'color: red' wirkt sich nur auf diese Beschriftung aus Optionen statt Farbe:

<?= $form->field($model, 'name', [ 'options' => [ 'class' => 'col-xs-8']])->label('Your Name'); ?>

Wenn Sie Optionen für eine davon festlegen möchten (Beschriftung oder Eingabe), können Sie dies separat tun, wie folgt:

<?= $form->field($model, 'name')->textInput(['style' => 'color:red'])->label('Your Name',['style'=>'color:blue']); ?>

Yii ist so flexibel, das gefällt mir.

0
Jose Manuel Kun