检查是否与CDataColumn的value属性关联

时间:2013-04-23 14:01:39

标签: php yii

我知道可以在CDataColumn的value属性中使用一种条件语句形式,如问题conditional statements inside of 'value' for CDataColumn.中所述。我想知道是否有办法检查模型是否实际具有值集在尝试显示之前。我的问题出现了,因为我的模型Source有一个可选的关系'country',它不是为所有Source实例设置的。因此,当我在Source CDataColumn中访问国家/地区名称时,我会获得PHP

  

尝试获取非对象的属性

..如果该网格中的任何来源没有设置其国家/地区。我

有没有办法检查关系是否在列的'value'属性中设置?

1 个答案:

答案 0 :(得分:1)

你应该尝试这个(你应该用所需的属性替换name):

array(
  'name'=>'country',
  'value'=>'(isset($data->country)) ? $data->country->name : ""',
),

你也可以在你的Source模型中使用getter,例如:

public function getCountryName()
{
  // I assume country_id is the foreign key
  if (isset($this->country_id) && isset($this->country))
    return $this->country->name;

  return '';
}

使用此getter,您只需将其添加到gridview列:

  'countryName',