Yii2 ActiveForm字段选项不起作用

时间:2014-12-15 00:12:30

标签: php yii2

根据Yii2的official tutorial。我为报名表创建了一个视图:

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

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

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

我收到了错误:

  

未知属性 - yii \ base \ UnknownPropertyException

     

设置未知属性:yii \ widgets \ ActiveField :: style

The official api documentation表示ActiveForm的方法采用第三个名为options

的参数

有人能解释我为什么会发生这个错误吗?!

3 个答案:

答案 0 :(得分:13)

尝试

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

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

答案 1 :(得分:6)

试试这段代码:

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

您已收到此错误

Unknown Property – yii\base\UnknownPropertyException

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

因为没有这种财产风格。你应该使用&#39;选项&#39;并通过&#39; style&#39;作为子数组

答案 2 :(得分:0)

这种方式适用于所有“字段”(包括“标签”和“输入”)的especify选项,但'style'=&gt;'color:red'仅以这种方式影响标签,我使用这用于指定类选项而不是颜色:

<?= $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非常灵活,这就是我喜欢的。