YII:如何在属性上显示相关的表字段?

时间:2012-09-06 03:25:34

标签: php yii

我是YII的新人,我有一个问题...... 我有一个类似

的模型
Person {
   $id ; 
   $name ; 
   $address ; 
}


Car{
   $id ;
   $carLicenseNumber ; 
   $person_id ; // BELONGS TO PERSON 
}

我有一个CJuiAutoComplete但我不知道如何在字段上显示人名时想要更新

$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    'model'=>$model,
    'id'=>'person',
    'name'=>'person',

    'attribute'=> 'person->name', // I WANT THIS but no idea how to do this ... 

    'source'=>$this->createUrl('person/suggestPerson'),
    'options'=>array(
        'delay'=>150,
        'minLength'=>2,
        'showAnim'=>'fold',
        'select'=>"js:function(event, ui) {
            $('#label').val(ui.item.label);
            $('#temp_person_id').val(ui.item.id);
        }"
    ),
    'htmlOptions'=>array(
        'size'=>'40'
    ),
));

如何在属性上显示person->名称?

注意:$ model是Car实例

我尝试使用像

这样的临时变量

$ temp = $ model-> person-> name; 然后将$ temp分配给'attribute'=> $ temp 它运作良好......

我只想知道在文本字段或自动填充字段中分配相关字段的正确方法。

1 个答案:

答案 0 :(得分:0)

在我与Live Chat上的一些YII开发者聊天后,我找到了解决方案

$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    'model'=>$model->person, // change this to model->person instead of model
    'id'=>'person_name',
    'name'=>'person_name',

    'attribute'=> 'name', // just name

    'source'=>$this->createUrl('person/suggestPerson'),
    'options'=>array(
        'delay'=>150,
        'minLength'=>2,
        'showAnim'=>'fold',
        'select'=>"js:function(event, ui) {
            $('#label').val(ui.item.label);
            $('#temp_person_id').val(ui.item.id);
        }"
    ),
    'htmlOptions'=>array(
        'size'=>'40'
    ),
));