4

以下のような条件を管理する必要がある CakePHP を使用したトーナメント Web サイトがあります。

試合の部門と試合のスケジュールを管理する必要がある 2 人の競技者の間で戦闘が行われます。ここでは、競技者と対戦相手は競技者のテーブルの外部キーから同じになります。これは、同じユーザーが互いに対立することを意味します。場合、2 つの同じフィールド (competitor_id) を試合スケジュールのテーブルに保存し、管理者も管理できるようにする方法、競合他社の注文、一部の競合他社が利用できない場合など.

4

1 に答える 1

6

あなたの質問は最後に向かって少し混乱します。スケジュールされたイベントとユーザー (競合他社と対戦相手のイベント) から単純に 2 つの関係を作成しようとしていますか? その場合、これは外部キーを使用してスケジュール モデルの関係を拡張することで実現できます。

言う代わりに:

var $hasMany = array('Competitor');

外部キーとテーブル名を展開して設定できます。

var $hasMany = array(
 'Competitor' => array(
        'className' => 'Competitor',
        'foreignKey' => 'competitor_id'
    ),
 'Opponent' => array(
        'className' => 'Competitor',
        'foreignKey' => 'opponent_id'
    )
);

これにより、同じモデルに 2 つの関係が設定され、別々に保存できます。参考文献。

于 2011-03-10T09:40:26.490 に答える