在 Yii2 中使用数据库中的表单字段时如何修复 "Getting unknown property" 错误?

How to fix the "Getting unknown property" error when using form fields from a DB in Yii2?

我想实施一个解决方案,其中表单的字段类型来自数据库。

我的表格是 ActiveForm 和模特。

我正在将以下内容添加到数据库中:

formfield: textInput

并将此转化为以下形式:

<?= $form->field($model, 'rgw')->{$model->rrgw->formfield}(['maxlength' => true]) ?>

这是它唯一的工作方式,而且只适用于文本输入。一旦我删除 (['maxlength' => true]) 它就不再工作了,我得到错误:

Getting unknown property: yii\bootstrap\ActiveField::textInput

此外,如果我想要一个复选框或其他东西,(['maxlength' => true]) 是不需要的,对吗?

所以我试图像这样将 () 添加到数据库中:

formfield: textInput()

我仍然遇到错误:

Getting unknown property: yii\bootstrap\ActiveField::textInput()

如何删除 Yii 中的 () 部分并将其移至数据库?

textInput()checkbox() 是方法,所以你需要使用 () 来表示你想要一个方法而不是 属性.

<?= $form->field($model, 'rgw')->{$model->rrgw->formfield}() ?>