2

我刚开始使用 yii,但我对 php 框架并不陌生。但是现在我遇到了这个问题:

我有两个模型/数据库:

部门: http ://s7.directupload.net/images/120610/alemicys.png

员工: http ://s1.directupload.net/images/120610/hxerdm8t.png

我只是想在这个员工视图中显示部门的实际名称。因此,我希望使用“司法部”而不是“部门”栏中的 1。

这是我的数据库的样子:http://s1.directupload.net/images/120610/7wupindz.png

提前致谢!约翰

4

1 回答 1

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以了解如何修改上述数组。

注意:由于您只要求显示,因此上面的代码将起作用,如果您希望此列的过滤器起作用,您必须要么

  1. 修改员工模型的搜索功能(或您正在搜索的任何地方)以将输入字符串映射到部门 ID 或
  2. 编写一些 javascript 将相关部门的 id 发送到搜索,而不是字符串。

现在过滤器只适用于部门ID(即整数)而不是名称(字符串)。

您也可以这样做而不是上面的代码:

//again in place of departmentId
'department.name' // using the 'department' relation, accessing its 'name'

但是接下来要获得过滤器会很困难(您必须再次使用数组),并且列标题也将成为部门模型名称属性的attributeLabel。可以使用格式更改标题 : ,因此您可以:'name:type:header''department.name:Department'

大多数这些细节都可以在我包含的文档链接中找到。

于 2012-06-10T14:04:32.263 回答