1

何時間も解決しようとしてきた問題があります。書籍モデル、著者モデル、および国モデルがあるとします。

ブック エントリを表示すると、ページの下部に関連オブジェクトが表示されます。この場合、著者。

このページには、著者の関連データ、著者の名前、およびその他の詳細が表示されます。ただし、国は country_id として表示されます。

それを国名に変更する方法はありますか?

アップデート:

次の 3 つのテーブルがあります。 Book HMBM Authors H Country

本は多くの著者によって書かれている場合があります (アンソロジーの場合)

著者は多くの本を書くかもしれない

著者はある国に居住している場合があります

国は多くの著者をホストする場合があります。

本:

public $hasAndBelongsToMany = array(
    'Author' => array(
        'className' => 'Author',
        'joinTable' => 'author_books',
        'foreignKey' => 'book_id',
        'associationForeignKey' => 'author_id',
        'unique' => '',
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'finderQuery' => '',
        'deleteQuery' => '',
        'insertQuery' => ''
    )
);

著者:

public $hasMany = array(
    'Book' => array(
        'className' => 'Book',
        'foreignKey' => 'book_id',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    )
public $belongsTo = array(
    'Country' => array(
        'className' => 'Country',
        'foreignKey' => 'country_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )

国:

public $hasMany = array(
    'Author' => array(
        'className' => 'Author',
        'foreignKey' => 'country_id',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    )
4

1 に答える 1

0

本に著者がいて、著者に国がある場合、必要なデータは、データベースへの再帰呼び出しを避けるための ORM のメカニズムの外にあります。コントローラー メソッドを呼び出し$this->Book->recursive = 2て、再帰の制限を増やします。

于 2012-05-17T11:08:38.927 に答える