laravel(5.6)与电子商务的良好关系

kkih6yb8  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(348)

所以,我想通过拉雷维尔雄辩的关系,为一个电子商务项目,我的工作。我有一个产品表,我正在考虑创建一个口味表和大小表。以下是我关注的关系:
一种产品可以有多种口味-这一款我可以只使用一对多,即hasmany,relationship。
一个产品可以有很多尺寸-这个我可以只使用一对多,即hasmany,relationship。
一种口味可以与许多产品相关联——这个我不确定,因为我不想只是在口味表中重新创建一种口味,并将重复的口味与不同的产品相关联,我想将口味与许多产品相关联,但不确定如何实现这一点。建议?
或者有人有一个干净的(er)方式来完成这件事?先谢谢你。

yzckvree

yzckvree1#

您可以在products表中保存香精的id(如果产品只有一种香精)。
为了在一个产品中保存多种口味,你需要第三张table。
例子:
tableproducts | tableflavours | tableusedflavours(将保存产品id和香精id)。
而不是使用“with”来搜索产品关系表usedflavours。与关系,你也可以联系tableflavors,带来风味的名字。
从产品中检索香精(以及香精名称):
产品控制员做雄辩的询问:

$record: Product::select(some_fields)
->with('flavours')
->get();

产品模式,创造“风味”功能:

public function flavours()
    {
        return $this->hasMany(UsedFlavours::class, 'product_id', 'id')
                    ->with(['flavour' =>function($query){
        $query->select(['flavour_name'])->where(anything);}]);
    }

现在使用的Flavours型号:

public function feature(){
        return $this->belongsTo(Flavour::class,'flavour_id','id');
    }

现为香型:

public function usedFeatures()
    {
        return $this->belongsTo('UsedFlavours','id');
    }

这段代码没有经过测试,但这就是逻辑。

相关问题