1

リレーションとそのパラメータの基本的な構文が欲しい

これらの説明が必要です

  • BELONGS_TO と HAS_ONE の違いは?
  • CGridView でリレーションを使用したい (そのリレーションは、別のテーブル要素を外部キーとして参照します) たとえば、3 つのテーブルがあります
  • メッセンジャー
  • ユーザーログイン
  • ユーザープロフィール

私は Messenger Admin Grid にいます UserLogin テーブルの主キーを持っています その userlogin は userprofile の主キーを持っています 今、グリッドの userProfile フィールドにアクセスしたいです

私はすでに次のような関係で(スルー)を試しています

メッセンジャーモデルで

    'relationeg'=>array(self::HAS_ONE,'Userprofile',array('user_id'=>'id'),'through'=>'user'),
'user'=>array(self::BELONGS_TO, 'UserLogin','user_id'),

私は自分のグリッドでこれにアクセスします

    .....
    ....
array(
    'name'=>'message_by',
    'value'=>'$data->relationeg->username'
),
....
...

しかし、ベース テーブル レコードのキーがまったく異なる間違ったデータを取得しました。

私はこの行に疑問を持っています

'relationeg'=>array(self::HAS_ONE,'Userprofile',array('user_id'=>'id'),'through'=>'user'),

in this self::HAS_ONE ってどういうこと?結合クエリの where 条件を追加すると、これに条件を追加する方法

事前の感謝

あなたの答え歓迎

4

1 に答える 1

1

KEY POINT : BELONGS_TO リレーションは、このモデルのフィールドが別のモデルの主キーを指していることを示します。この場合、現在のモデルがリンク フィールドを所有しています。

KEY POINT : HAS_ONE リレーションは、他のモデルがこのモデルの主キーを指すリンク フィールドを持っていることを示します。この場合、関連するモデルがリンク フィールドを所有します。

PARENT テーブルは外部キーを持たないテーブルであり、CHILD テーブルは親テーブルに「依存」する、つまり外部キーを持つテーブルであると考えることができます。

その場合、CHILD BELONGS_TOは PARENT であり、PARENT はHAS_ONE CHILD です。

答えはここにあります

于 2014-05-07T06:21:49.030 に答える