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“包含”不检索“属于”的主要内容,如果未能解决你的问题,请参考以下文章