2015-05-03 21 views
3

我使用的是yii2自动完成的小部件,它工作正常,除非当我更新表单时字段显示空白。Yii2自动完成 - 在更新的字段中缺少值

use yii\jui\AutoComplete; 
use yii\web\JsExpression; 

$data = app\models\Doctor::find() 
    ->select(['doctor_name as value', 'doctor_name as label','id as id']) 
    ->asArray() 
    ->all(); 

,之后自动完成这样的代码

echo 'Doctor' .'<br>'; 
    echo AutoComplete::widget([ 
    'name' => 'Doctor',  
    'id' => 'ddd', 
    'clientOptions' => [ 
     'source' => $data, 
     'autoFill'=>true, 
     'select' => new JsExpression("function(event, ui) { 
     $('#appoinment-doctor_name').val(ui.item.id); 
    }")], 
    ]); 
<?= Html::activeHiddenInput($model, 'doctor_name')?> 

我是缺少在这里?我如何获得更新的价值?

回答

2

你必须明确地设置value

echo AutoComplete::widget([ 
    'name' => 'Doctor',  
    'id' => 'ddd', 
    'value' => $model->doctor_name, 
    ... 

如果设置modelattribute虽然这是没有必要的。

+1

Topher - 谢谢它工作正常,但我必须修改它像 - ''value'=>(!$ model-> isNewRecord?$ model-> doctorName-> doctor_name:''),'。再次感谢。 – Joshi