在listData函数中获取外部表记录

时间:2012-06-15 10:48:16

标签: php yii

这是YII框架,我有以下表:tbl_banner_location_type

bannerLocationTypeId(PK)    bannerLocationId(FK)    bannerTypeId(FK)
1                           1                       2
2                           2                       5
3                           1                       6

现在我将bannerLocationId的值作为输入。即1 我想要来自不同表格的所有横幅类型值。 我尝试过以下代码,但收到错误:属性BannerLocationType。$ data-> bannerType-> value“未定义。

$data = BannerLocationType::model()->findAll('bannerLocationId=:bannerLocationId', 
              array(':bannerLocationId'=>(int) $_POST['bannerLocationId']));

$data = CHtml::listData($data,'bannerTypeId','$data->bannerType->value');   
echo CHtml::tag('option', array('value'=>''),CHtml::encode('- - Select - -'),true);
foreach($data as $value=>$name)
{
    echo CHtml::tag('option',
               array('value'=>$value),CHtml::encode($name),true);
}

我知道我可以通过以下方式获得它的价值,但我想要数组。

$obj= BannerLocationType::model()->findByPk($id); 
$obj->bannerType->value; 

请帮忙。

1 个答案:

答案 0 :(得分:4)

哦......问题是固定的......那是如此基本......我的YII知识很差。

我已经改变了

  $data = CHtml::listData($data,'bannerTypeId','$data->bannerType->value');

$data = CHtml::listData($data,'bannerTypeId','bannerType.value');  

对不起朋友,如果我的问题不清楚。但我不确定我是如何代表这个问题的。