首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于关联数据的cakephp 3 queryBuilder

用于关联数据的cakephp 3 queryBuilder
EN

Stack Overflow用户
提问于 2017-05-31 09:58:29
回答 1查看 225关注 0票数 2

我有两张桌子。

表1:

代码语言:javascript
复制
product_prices:
id | price |description |pack |display |created |modified |

表2:

代码语言:javascript
复制
payment_infos:
id |payer |pay_date |product_price_id |product_price |

payment_infos模型中

代码语言:javascript
复制
$this->belongsTo('ProductPrices', [
        'foreignKey' => 'product_price_id',
        'className'  => 'ProductPrices',
]);

我有一个疑问:

代码语言:javascript
复制
$query = $this->find('all', [
        'contain' => ['ProductPrices']
]));

在运行上面的查询时,我得到以下错误:

代码语言:javascript
复制
Warning (512): Association property name "product_price" clashes 
with field of same name of table "payment_infos". 
You should explicitly specify the "propertyName" option.
[CORE\src\ORM\Association.php, line 722]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-31 13:30:50

propertyName:应该将关联表中的数据填充到源表结果中的属性名称。默认情况下,在我们的示例中,这是关联的强调和单数名称,所以是product_price

由于您已经在product_price中有一个字段名payment_infos,因此它会产生冲突,因此我将默认属性名更改为自定义名称。

代码语言:javascript
复制
$this->belongsTo('ProductPrices', [
    'foreignKey' => 'product_price_id',
    'className'  => 'ProductPrices',
    'propertyName' => 'prod_price'
]);

请参阅BelongsTo协会

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

https://stackoverflow.com/questions/44281597

复制
相关文章

相似问题

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