2

Yii の STAT 関係に問題があります。私が探しているものがネイティブの Yii 関係で可能かどうかはわかりません。私の問題を説明するために最善を尽くします。不明な点がある場合は、具体的な詳細を尋ねてください。

私は3つのテーブルを持っているので、3つのモデルがあります

| tablea         |
| tableb         |
| tablec         |


mysql> select * from tablea;
+----+--------+
| id | name   |
+----+--------+
|  1 | Item 1 |
|  2 | Item 2 |
+----+--------+
2 rows in set (0.00 sec)

mysql> select * from tableb;
+----+------+----------+
| id | Aid  | name     |
+----+------+----------+
|  1 |    1 | B Item 1 |
|  2 |    2 | B Item 2 |
|  3 |    1 | B Item 3 |
+----+------+----------+
3 rows in set (0.00 sec)

mysql> select * from tablec;
+----+------+----------+-------+
| id | Bid  | name     | value |
+----+------+----------+-------+
|  1 |    1 | C Item 1 |    10 |
|  2 |    2 | C Item 2 |    20 |
|  3 |    1 | C Item 3 |    15 |
|  4 |    2 | C Item 4 |     5 |
|  5 |    3 | C Item 5 |    12 |
+----+------+----------+-------+
5 rows in set (0.00 sec)

その関係は、TableA HAS_MANY TableB と TableB HAS_MANY TableC のようなものです。

TableC に値フィールドがあります。TableB から値の合計の STAT 関係を取得できます。私が欲しいのは、TableA のすべての TableC アイテムの合計です。並べ替え機能を使用して、GridView でそれらを使用する必要があります。

これを実装する方法についてのアイデアはありますか?

ありがとう

4

1 に答える 1

4

TableA次のように、モデルのリレーションに 3 番目のテーブルを結合してみてください。

public function relations()
{
    return array(
        ...
        'TableCCount' => array(self::STAT, 'TableB', 'Aid', 'join'=>'INNER JOIN `tablec` `tc` ON `tc`.`Bid` = `t`.`id`'),
        ...
    );
}

テストされていないため、少し編集が必要な場合があります。

于 2012-11-07T08:39:38.087 に答える