在员工网格视图的columns
属性中添加:
// this is in place of just 'departmentId',
array(
'name'=>'departmentId', // name of the foreign key attribute
'value'=>'$data->department->name', // access the 'name' attribute of the related record through relation named 'department', the current record is represented by '$data'
'type'=>'raw' // data is of raw type
),
阅读CDataColumn以了解如何修改上述数组。
注意:由于您只要求显示,因此上面的代码将起作用,如果您希望此列的过滤器起作用,您必须要么
- 修改员工模型的搜索功能(或您正在搜索的任何地方)以将输入字符串映射到部门 ID 或
- 编写一些 javascript 将相关部门的 id 发送到搜索,而不是字符串。
现在过滤器只适用于部门ID(即整数)而不是名称(字符串)。
您也可以这样做而不是上面的代码:
//again in place of departmentId
'department.name' // using the 'department' relation, accessing its 'name'
但是接下来要获得过滤器会很困难(您必须再次使用数组),并且列标题也将成为部门模型名称属性的attributeLabel。可以使用格式更改标题 : ,因此您可以:'name:type:header'
'department.name:Department'
大多数这些细节都可以在我包含的文档链接中找到。