【发布时间】:2018-02-26 07:59:07
【问题描述】:
在数据库中,我有一个产品和组件表
我有一个多对多关系表,它是 component_product
它的属性为 (product_id,component_id,quantity)
在模型产品中
class Product extends Model
{
protected $fillable = [
'name','price','user_id','is_avilable','description'
];
public function components()
{
return $this->belongsToMany('App\Component')
->withPivot('quantity');
}
}
在视图中
{!! Form::select('component_id[]',$components,null !!}
{!! Form::select('component_id[]',$components,null !!}
{!! Form::number('quantity[]',null ]) !!}
{!! Form::number('quantity[]',null ]) !!}
在控制器中
public function store(Request $request)
{
$product= Product::create( $request->all() );
$product->components()->sync($request->component_id => ['quantity'=> $request->quantity ] );
}
它给了我一个非法偏移类型的错误
注意:如果转储 $request->quantity 或 $request->component_id 它将正确获取数组
【问题讨论】:
-
FWIW,我遇到了同样的问题,我收集了
User实例。我挠着头想知道怎么了。 然后我阅读了文档。 它需要是一个ID 集合。故事的寓意:总是阅读文档。
标签: laravel many-to-many