我知道可以在CDataColumn的value属性中使用一种条件语句形式,如问题conditional statements inside of 'value' for CDataColumn.中所述。我想知道是否有办法检查模型是否实际具有值集在尝试显示之前。我的问题出现了,因为我的模型Source有一个可选的关系'country',它不是为所有Source实例设置的。因此,当我在Source CDataColumn中访问国家/地区名称时,我会获得PHP
尝试获取非对象的属性
..如果该网格中的任何来源没有设置其国家/地区。我
有没有办法检查关系是否在列的'value'属性中设置?
答案 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',