Php 将产品多种颜色存储到数据库Laravel
我有一个产品表,它有Php 将产品多种颜色存储到数据库Laravel,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我有一个产品表,它有价格、名称、库存等,还有一个颜色产品表,它有颜色标识、产品标识。我想用选定的颜色将产品存储到数据库中,目前为止,我收到一个错误为foreach()提供的参数无效。我怎样才能解决这个问题 控制器 $formInput=$request->all(); //If I do dd($formInput) I see all data $product = product::create(array_merge($formInput, [ 'us
价格、名称、库存等
,还有一个颜色产品表,它有颜色标识、产品标识
。我想用选定的颜色将产品存储到数据库中,目前为止,我收到一个错误为foreach()提供的参数无效。我怎样才能解决这个问题
控制器
$formInput=$request->all(); //If I do dd($formInput) I see all data
$product = product::create(array_merge($formInput, [
'user_id' => Auth::user()->id
]));
// Insert color to the database
$store_color = [];
$colors = $request->color_id;
foreach ($colors as $color) {
$ouzColor = $color->save;
$store_color[] = [
'product_id' => $product->id,
'color_id' => $ouzColor
];
}
ColorProduct::insert($store_color);
刃锉
<select multiple name="color_id" id="color">
<option value=""> --Select Colors -- </option>
@foreach($colors as $color)
<option value="{{ $color->id }}" >{{$color->name}}</option>
@endforeach
</select>
--选择颜色--
@foreach($colors作为$color)
{{$color->name}
@endforeach
尝试将您的选择字段重命名为类似的内容
让我们一步一步来
$product = Product::create([
'field 1' => $request->field1,
'filed 2' => $request->field2,
'user_id' => \Auth::user()->id,
]);
$store_color = [];
foreach ($request->color_id as $index=>$color) {
$store_color[$index] = [
'product_id' => $product->id,
'color_id' => $color,
];
}
ColorProduct::insert($store_color);
当然,您需要将filed1和file2更改为其真实名称和值,这是行不通的。它在尝试获取非对象的属性时抛出一个错误。
@distoon当显示此错误时,您能更具体一点吗?它是在函数的POST请求期间还是在加载视图时发生的?它是在POST期间发生的,不会在@distoon保存数据