使用laravel的动态产品

使用laravel的动态产品,laravel,eloquent,many-to-many,Laravel,Eloquent,Many To Many,我是网络开发新手。我正在尝试将动态产品添加到我的电子商务网站。这是我的数据库结构: 属性的选项表,如:大小、颜色 不同选项的选项表,如:红色、蓝色、大、小 我的问题是,我如何通过选择达到实例(实例和选择有多对多关系)。例如,当用户选择蓝色和小的时候,我想通过Ajax来获取价格,我怎样才能达到实例来返回这些选项的价格?换句话说,考虑实例和选择模型有多对多的关系。如果我有一个选择,我可以很容易地通过多对多关系到达它的实例。但是,当我有两个或多个选择时,我如何到达实例(在我的例子中只有一个实例)?

我是网络开发新手。我正在尝试将动态产品添加到我的电子商务网站。这是我的数据库结构:

属性的选项表,如:大小、颜色

不同选项的选项表,如:红色、蓝色、大、小

我的问题是,我如何通过选择达到实例(实例和选择有多对多关系)。例如,当用户选择蓝色和小的时候,我想通过Ajax来获取价格,我怎样才能达到实例来返回这些选项的价格?换句话说,考虑实例和选择模型有多对多的关系。如果我有一个选择,我可以很容易地通过多对多关系到达它的实例。但是,当我有两个或多个选择时,我如何到达实例(在我的例子中只有一个实例)? 现在我正在使用以下代码,但我认为应该有一种更简单的方法:

$choices=Choice::findOrFail($request->choices);
$collection=collect();
foreach($choice作为$choice){
$id=$choice->instances->where('product_-id',$request->product_-id)->pull('id');
$collection=$collection->merge($id);
}
$array=$collection->toArray();
$values=数组\计数\值($array);
arsort(价值);
$instance\u id=array\u片(array\u键($value),0,1,true);
$instance=instance::where('id',$instance_id[0])->first();
返回$instance->price\u sell;
您可以使用
pluck()
collapse()

$choices=Choice::with('instances')->findOrFail($request->choices);
$instances=$choices->pull('instances')->collapse();
$id=$instances->where('product\u id',$request->product\u id)->pull('id');
$values=数组\计数\值($id->all());
arsort(价值);
$instance=$instances->find(数组_键($value)[0]);
返回$instance->price\u sell;

with('instances')
instances以减少查询数量。

您尝试了什么?请通过编辑将代码添加到您的问题中。我已将代码添加到问题中