CakePHP 3“包含”不检索“属于”

Posted

技术标签:

【中文标题】CakePHP 3“包含”不检索“属于”【英文标题】:CakePHP3 'contain' doesn't retrieve 'belongsTo' 【发布时间】:2021-12-27 22:47:02 【问题描述】:

一个用户有多个产品。每个产品都有一个品牌。

在产品表中,我有一个“brand_id”列。

目前我做debug($user)时没有加入。

我想加入品牌和产品表 (product.brand_id = brand.id)。我该如何解决这个问题?

(对不起我的英语)

//Controller Users
    $users = TableRegistry::getTableLocator()->get('users');
    $user = $users->find('all')
            ->contain(['Products' => ['conditions' => ['id' => 25]]])
            ->first();
    debug($user); 


//Model Users
public function initialize(array $config)

    $this->hasMany('products');



//model Products
public function initialize(array $config)

    $this->belongsTo('brands');

【问题讨论】:

【参考方案1】:

简单:

->contain([
   'Products' => ['conditions' => ['id' => 25]],
   'Products.Brands', // Add product brands
])

阅读更多:https://book.cakephp.org/4/en/orm/query-builder.html#loading-associations

【讨论】:

以上是关于CakePHP 3“包含”不检索“属于”的主要内容,如果未能解决你的问题,请参考以下文章

在AWS S3上存储CakePHP库以用于多个应用程序

Cakephp 3 - 使用_joinData属于ToMany

CakePHP - 关系问题 - Posts.Child 属于用户,如何定义?

CakePHP:从单个模型中检索多个记录以以一种形式进行编辑

如何拦截CakePHP 3中的检索字段?

Cakephp 3 - 如何在验证过程中检索“表”类中的当前登录用户?