我在我的 Controller 上初始化了一个模型及其一个属性
$model = new MyModel;
$model->internal_code = 'BAUBAU';
然后我填充一组适合自动完成的代码
$products = Product::find()
->select([
Product::tableName().'.id as id',
'internal_code as label',
'internal_code as value',
])
->asArray()
->all();
然后我想使用自动完成来显示默认值并允许用户通过自动完成小部件选择更改它。
这是查看代码
echo $form->field($model, 'internal_code')
->widget(AutoComplete::classname(),[
'clientOptions' => [
'source' => $products
]
])
->label('Internal code');
实际上小部件可以工作,用户可以对字符进行数字化并从自动完成缩小搜索的结果中进行选择。
Bu 问题是,即使设置了 $model->internal_code
,小部件在加载时也不会显示该值。 用户在屏幕上看不到默认值(“BAUBAU”)。我无法理解要填写的属性和/或客户端选项。
注意:我添加了 jquery-ui
标签,因为这个 Yii2 小部件使用了 JqueryUI 的自动完成小部件
最佳答案
你只需要设置value属性(property)。
像这样。
echo $form->field($model, 'internal_code')
->widget(AutoComplete::classname(),[
'value' => (!empty($model->internal_code) ? $model->internal_code : ''),
'clientOptions' => [
'source' => $products
]
])->label('Internal code');
关于jquery-ui - Yii2:是否可以为自动完成小部件设置可见的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32587984/