2

私はyiiを始めたばかりですが、phpフレームワークは初めてではありません。しかし、今私はこの問題で立ち往生しています:

私は2つのモデル/データベースを持っています:

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

従業員: http ://s1.directupload.net/images/120610/hxerdm8t.png

この従業員ビューに部門の実際の名前を表示したいだけです。そのため、「Department」列の1の代わりに、「DepartmentofJustice」が必要です。

これは私のデータベースがどのように見えるかです: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. 入力文字列を departmentId または
  2. 文字列の代わりに、関連する部門の ID を検索に送信する JavaScript を記述します。

現在、フィルタはname( string ) ではなくdepartmentId(つまり integer ) でのみ機能します。

上記のコードの代わりにこれを行うこともできます。

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

しかし、フィルターを取得するのは難しく (配列を再度使用する必要があります)、列ヘッダーもDepartment モデルのname属性のattributeLabelになります。ヘッダーは : の形式を使用して変更できるため、次のことができます。'name:type:header''department.name:Department'

これらの詳細のほとんどは、私が含めたドキュメント リンクで利用できます。

于 2012-06-10T14:04:32.263 に答える