根据 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 非常灵活,这就是我喜欢它的原因。