Cakephp 如何获取相关的对象名称?

Cakephp 如何获取相关的对象名称?,cakephp,Cakephp,我有一个问题,几个小时来我一直在努力解决。假设我有一个图书模型,一个作者模型和一个国家模型 查看图书条目时,页面底部有相关对象。在本例中,作者 该页面显示作者的相关数据、作者姓名和其他详细信息。但是,国家/地区显示为国家/地区id 有没有办法把它改成国名 更新: 我有这三张桌子: 书HMBM作者H国家 一本书可能是由许多作家为选集而写的 一个作家可以写很多书 作者可以居住在一个国家 一个国家可能收容5名作家 书籍: 作者: public $hasMany = array( 'Book'

我有一个问题,几个小时来我一直在努力解决。假设我有一个图书模型,一个作者模型和一个国家模型

查看图书条目时,页面底部有相关对象。在本例中,作者

该页面显示作者的相关数据、作者姓名和其他详细信息。但是,国家/地区显示为国家/地区id

有没有办法把它改成国名

更新:

我有这三张桌子: 书HMBM作者H国家

一本书可能是由许多作家为选集而写的

一个作家可以写很多书

作者可以居住在一个国家

一个国家可能收容5名作家

书籍:

作者:

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' => ''
    )

如果一本书有作者,而作者有一个国家,那么您需要的数据不在ORM的机制范围内,以避免对数据库的递归调用。在控制器方法中调用$this->Book->recursive=2以增加递归限制

-2应该是2-但我仍然强烈反对使用containable的更好方法。不幸的是,设置递归似乎没有任何作用,elliot。别担心,你也可以提交一个答案。马克:你是对的,应该是2-fixed!递归将起作用,但会减慢响应速度。忘记Containable,这是一个更好的方法。在进行任何查找或读取调用之前,请确保已设置Containable。正如@mark所指出的,您最好使用Containable$this->Book->id=$id$本->书->递归=2;如果$this->Book->exists{throw new NotFoundException_u'Invalid Book';}$this->set'Book',$this->Book->readnull,$id;我想我做得对。如果没有实际的代码,你如何检索数据,实际上没有人能够正确地帮助你。你还需要发布你在模型中建立的模型关系。我稍后会发布。我之所以没有发布更多的信息,是因为我所有的问题都有更多的信息,但都没有得到回复,谢谢你的关注。我很快会加上它。
public $hasMany = array(
    'Author' => array(
        'className' => 'Author',
        'foreignKey' => 'country_id',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    )