我刚开始使用yii,但我不是php框架的新手。但是现在我遇到了这个问题:
我有两个模型/数据库:
系: http://s7.directupload.net/images/120610/alemicys.png
员工: http://s1.directupload.net/images/120610/hxerdm8t.png
我只想在此Employee视图中显示Department的实际名称。因此,我想要“司法部”而不是“部门”一栏中的1。
这就是我的数据库的样子: http:// s1.directupload.net/images/120610/7wupindz.png
提前致谢! 约翰
答案 0 :(得分:2)
在员工网格视图的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以了解如何修改上述数组。
注意:由于您只要求显示,上面的代码才有效,如果您希望此列的过滤器有效,则必须
现在,过滤器只能使用departmentId(即整数)而不是名称( string )。
您也可以这样做而不是上面的代码:
//again in place of departmentId
'department.name' // using the 'department' relation, accessing its 'name'
但是要获得过滤器将很难(你将不得不再次使用一个数组),并且列标题也将成为Department模型的名称的 attributeLabel 属性。可以使用以下格式更改标头:'name:type:header'
,以便执行以下操作:'department.name:Department'
我所包含的文档链接中提供了大部分详细信息。