复合CHtml :: listData值

时间:2013-05-31 00:37:44

标签: php javascript yii

我想在下拉列表中发布组值。如何在值字段中汇总id和分组(type)?

CHtml::listData($eventLocationByUser, 'id', 'caption', 'type');

我试过了:

CHtml::listData($eventLocationByUser, 'id'.'type', 'caption', 'type');

但返回空值。

1 个答案:

答案 0 :(得分:6)

由于值字段接受匿名函数,您可以这样做:

CHtml::listData( 
    $eventLocationByUser, 
    'id', 
    function($loc){ return $loc->id . " " . $loc->type; }
);

And here is the example from the docs.


另一种方法可能是在模型中添加另一个字段(例如,假设为$ idtype),每次创建或保存记录时都会更新此字段(也许使用某个行为?)然后你可以使用方法:

CHtml::listData( $eventLocationByUser, 'id', 'idtype' });

它可能会将业务逻辑从您的视图移动到您的模型,但只有您可以决定是否值得麻烦。