想要用json字段内的键来作为关联的外键,有可行办法么?
起因是 Category
的字段已经设计好,只预留了一个 json 类型的 ext 字段,Category 模型属于另一个模块,不便修改和增加数据库中的字段。
所以我想要用 json 内的字段来做关联,尝试了下面的写法,不能实现,把 .
换成 ->
也是不可以的。
class Category extends Model
{
protected $casts = [
'ext' => 'json',
];
}
# 不可用
Category::resolveRelationUsing('supplier', function (Category $category) {
return $category->belongsTo(Supplier::class, 'ext.supplier_id');
});
# 不可用
Category::resolveRelationUsing('supplier', function (Category $category) {
return $category->belongsTo(Supplier::class, 'ext->supplier_id');
});
我们都是用这个包,建议你可以试一下github.com/staudenmeir/eloquent-js...