1

我有一个问题,我试图解决几个小时。假设我有一个书籍模型、一个作者模型和一个国家模型。

查看书籍条目时,页面底部有相关对象。在这种情况下,作者。

该页面向我显示了作者的相关数据,作者的姓名和其他详细信息显示良好。但是,该国家/地区显示为 country_id。

有没有办法可以将其更改为国家名称?

更新:

我有这三个表: 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 回答