CakePHP 3从另一个表中获取关联表

时间:2015-08-18 17:46:49

标签: php mysql cakephp

我有3个表格产品样式详细信息

Product < Styles        < details
id      < product_id FK < styles_id FK

到目前为止我的关系是

//ProductTable 
$this->hasMany('Styles', [
        'foreignKey' => 'product_id'
    ]);

//StyleTable 
 $this->belongsTo('Products', [
        'foreignKey' => 'product_id'
    ]);
$this->hasMany('Details', [
        'foreignKey' => 'style_id'
    ]);
//Detail
$this->belongsTo('Styles', [
        'foreignKey' => 'style_id'
    ]);

在index()下的我的详细信息控制器中,我添加了

$this->paginate = [
        'contain' => ['Styles’, ‘Products’]
    ];

样式有效,但产品不起作用。我收到一个错误 详细信息与产品无关。这是有道理的我没有在详细信息表中定义它。我不知道如何开始,或者它叫什么。

最左边的加入?

我试过了

//Detail Table
$this->belongsTo('Product', [
        'foreignKey' => 'product_style_id',
        'targetForeignKey' => 'product_id',
        'joinTable' => 'product_styles'
    ]);

谢谢

1 个答案:

答案 0 :(得分:0)

我能够弄清楚

 'contain' => ['Styles’, ‘Styles.Products’]

这有效