根据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
的参数有人能解释我为什么会发生这个错误吗?!
答案 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非常灵活,这就是我喜欢的。