Yii2 活动表单字段选项不起作用


Yii2 ActiveForm fields options does not work

根据 Yii2 的官方教程。我已经为条目表单创建了一个视图:

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

在这一点上,一切都很好。但是,当我尝试使用 field 方法的参数options时,如下所示:

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

我收到错误:

未知属性 – yii''base''UnknownPropertyException

设置未知属性:yii''widgets''活动字段::样式

官方 api 文档指出,ActiveForm 的方法采用第三个参数,称为选项。

谁能解释为什么会发生此错误?!

尝试

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

这有点难以解释,当您在没有指定字段类型的情况下执行$form->field($model, 'name')时,您实际上是在请求 textInput。但这并不意味着你应该要求->field(->textInput(一样接受参数。如果您需要为字段添加一些特殊的参数,则必须使用显式->textInput(['style' => 'color:red'])

试试这段代码:

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

您收到此错误

Unknown Property – yii'base'UnknownPropertyException
Setting unknown property: yii'widgets'ActiveField::style

因为没有这样的属性风格。您应该使用"选项"并将"style"作为子数组

传递

这种方式适用于所有"字段"(包括"标签"和"输入")上的 e指定选项,但"style"=>"color:red"仅影响以这种方式标记,我将其用于 e指定类选项而不是颜色:

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

如果要为其中一个(标签或输入)指定选项,可以单独执行此操作,如下所示:

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

Yii 非常灵活,这就是我喜欢它的原因。