CakePHP 3.x 从实体获取相关数据

Posted

技术标签:

【中文标题】CakePHP 3.x 从实体获取相关数据【英文标题】:CakePHP 3.x getting accosiated data from entity 【发布时间】:2016-03-23 18:33:37 【问题描述】:

我开始使用 Cakephp 3.x 并且想知道如何以正确的方式实现这些功能?

$articles = $userEntity->getAccosiatedArticles()

【问题讨论】:

【参考方案1】:

只需使用contain 来检索关联数据。

$articles = $userEntity->find('all',[
            'contain'=>['Articles']
        ]);

为此,您必须在用户模型中声明has_many(在这种情况下)关联。

$this->hasMany('Articles');

【讨论】:

【参考方案2】:

正确的方法是使用$usersTable->loadInto($userEntity, ['Articles'])。你也可以使用惰性加载器插件:https://github.com/jeremyharris/cakephp-lazyload

【讨论】:

以上是关于CakePHP 3.x 从实体获取相关数据的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP 3.x - 仅在前缀中的扩展路由器

CAKEPHP 3.x - 实体更新时出错 - 即使有值,也会声明缺少字段

CakePHP Master/Detail 表单 - 简单问题

CakePhp : Cake bake 在 Ubuntu 上不起作用。 (PDO异常)

如何在 Cake 3.0 中保存 belongsToMany 数据?

调用未定义的方法 Cake\ORM\Entity::query() CakePhp