我有这个模型课
SOUNDEX('game of thrones')
在Dropdownlist更改时,我想加载并显示course_code,course_type,course_title和course_unit。但只应保存course_title。除course_title外,其他应仅显示而不保存。
我只能显示course_title。这是我对下拉列表的看法。
G513
这就是我所做的。
但我想实现这一目标。
如何在不保存数据库的情况下将其他属性显示为textInput()或标签。谢谢
控制器
public function attributeLabels()
{
return [
'id' => Yii::t('course', 'ID'),
'course_code' => Yii::t('course', 'Course Code'),
'course_type' => Yii::t('course', 'Course Type'),
'course_title' => Yii::t('course', 'Course Title'),
'course_unit' => Yii::t('course', 'Course Unit'),
];
}
答案 0 :(得分:0)
如果只想显示其他字段而不在表单提交时发送,则可以将字段标记为disabled
:
<?= $form->field($modelDetail, 'course_code')->textInput([
'disabled' => true,
]) ?>
这将呈现无法直接编辑的输入,并且不会在表单提交时发送。
答案 1 :(得分:0)
那么您可以在下拉菜单本身的标签中合并数据,这将是一个更简单的选择。如下对ArrayHelper :: map($ array,$ from,$ to,$ group = null)中的第三个参数使用闭包。
ArrayHelper::map(
app\modules\course\models\CourseMaster::find()->where(['is_status'=>0])->all(),
'id',
function($model){
return $model['course_title']." - ".$model['course_code'];
}
)