微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于自定义属性的Laravel关系不能同时双向

如何解决基于自定义属性的Laravel关系不能同时双向

为产品和类别建模。

产品模型具有以下自定义属性getCategoryIdAttribute()。因为获取类别ID的方法有点复杂。

使用该属性,我可以定义关系(产品->类别):

public function category()
{
    return $this->belongsTo(Category::class,'category_id','id');
}

这种关系很好!

但是现在在Category模型上:

public function products()
{
    return $this->hasMany(Product::class,'id');
}

如果我使用这种关系,则在sql上将失败。

修补程序示例:

Product::first()->category; // Works!
Category::first()->products; // Undefined column: 7 ERROR:  column products.category_id does not exist

为什么当我使用产品->类别关系但类别->产品不起作用时?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。