-1

私の状況: HABTM と hasOne リレーションを同じモデルで動作させたいと考えています。残念ながら、グループリーダーのユーザー情報をユーザーグループにロードしていません。

  • ユーザーは複数のユーザーグループを持つことができます
  • ユーザーグループは 1 人のグループリーダー (ユーザー ID) を持つことができます

どんな助けでも感謝します

私はこのようなテーブルレイアウトを持っています:


ユーザー

id
username

user_usergroups

id
user_id
usergroup_id

ユーザーグループ

id
groupname
groupleader (value is user_id)

ユーザーグループ モデル

public $hasAndBelongsToMany = array(
    'User' => array(
        'className' => 'Users',
        'foreignKey' => 'usergroup_id',
        'associationForeignKey' => 'user_id'
    )
);


public $hasOne = array(
    'GroupLeader' => array( 'className' => 'User',
    'foreignKey' => 'usergroup_groupleader' )
);
4

2 に答える 2

1

以下はコントローラーにありませんでした

$this->Staffgroup->recursive = 1;
于 2013-01-17T13:40:40.210 に答える
0

追加

public $hasAndBelongsToMany = array(
'User' => array(
    'className' => 'Users',
    'joinTable'=>'user_usergroups',
    'foreignKey' => 'usergroup_id',
    'associationForeignKey' => 'user_id'
)

);

usersgroup controller で情報を取得すると、ユーザーグループのリーダーの情報が含まれるようになりました。

于 2013-01-16T11:49:18.720 に答える