0

通常、Cakephp が異なる名前で別のモデルの列に関連付ける 1 つのテーブルに外部キー (つまり、列) を作成するにはどうすればよいですか? ちなみに、私はbake all標準の CRUD セットアップを開始するために使用しています。

私の質問の一般的な形式は次のとおりです。

Table_A持っていますid| label| | TableB_labelA_id| |TableB_labelB_id

Table_B持っていますid|label

ただし、残りの質問の見苦しさを軽減するために、これが私の現在のアプリケーションです。

games持っていますid| date| | us| |them

teams持っていますid|name

これは、エイリアスと関連付けの定義だけで実現できると思いますが、どうすればよいかわかりません。Us単純にとThemを拡張するモデルを作成することも思いTeam浮かびましたが、これは過度の努力のように思えました。

私はまた、直感的により正しいと思われる代わりに、配列にリストされてGame modelいることUsにも気付きました。Them$belongsTo$hasMany

アイデア?私は最も感謝しています!

4

1 に答える 1

2

エイリアスと適切な関連付け定義のみが必要であることについては正しいです。必要なものは次のとおりです。

class Game extends AppModel {
    public $belongsTo = array(
        'Us' => array(
            'className' => 'Team',
            'foreignKey' => 'us'
        ),
        'Them' => array(
            'className' => 'Team',
            'foreignKey' => 'them'
        ),
    );  
}

Bake はこれを手伝うことはできません。すべての命名が規則に従っている場合にのみ、経験に基づいた推測を行うことができますが、この場合は不可能です。

于 2013-04-18T20:45:10.300 に答える