首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过不递归的关联检索hasMany中的关联模型

通过不递归的关联检索hasMany中的关联模型
EN

Stack Overflow用户
提问于 2014-03-02 15:57:18
回答 1查看 315关注 0票数 0

通过两个表--图书和作者之间的关联,我建立了一个hasMany。这些关联正常工作,除非试图检索属于一本书的所有作者。如果我这么做

代码语言:javascript
复制
$book = $this->Book->findById($id)

返回的数组将而不是有一个数组作者;它将具有AuthorToBook连接模型信息,但不会自动获取与其关联的作者。

为了检索连接模型和相关的作者,我必须将递归设置为2。我还将重新获取每个AuthorToBook关联的图书数据。

代码语言:javascript
复制
'AuthorToBook' => array(
        (int) 0 => array(
            'id' => '1',
            'author_id' => '1',
            'book_id' => '2',
            'Author' => array(
                'id' => '1',
                'name' => 'J.R.R Tolkien',
                'date_of_birth' => '1892-01-03 00:00:00',
                'bio' => 'Professor and inventor of the Elvish Language'
            ),
            'Book' => array(
                'id' => '2',
                'title' => 'Return of the King',
                'pagecount' => '1200',
                'publisher_id' => '1'
            )
        )
    )

现在的问题是--如何在不设置递归参数的情况下通过关系获取由hasMany形成的关联模型?

这是消息来源

代码语言:javascript
复制
<?php
class Author extends AppModel
{
    public $hasMany = array('AuthorToBook');
}
?>

<?php
class AuthorToBook extends AppModel 
{
    public $useTable = 'authors_to_books';
    public $belongsTo = array('Author', 'Book');
}
?>

<?php
class Book extends AppModel {


    public $hasMany = array('AuthorToBook');

}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-02 22:04:57

可控制行为是您的朋友,是递归的替代品。它允许您指定要在每个查询中检索的关联模型。

递归是一件很酷的事情,但大家一致认为,除了为CakePHP编写入门教程之外,不应该实际使用递归。在您的public $recursive = -1;中设置AppModel (默认情况下使其关闭),永远不要回头看。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22129857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档