I a have pivot table and a relation on model Product:
public function product_bodies()
{
return $this->belongsToMany(static::class, 'product_bodies')->withPivot('product_id', 'product_body_id');
}
In the controller when I want to attach data:
$products = ['sadasdasd', 'asdasda', 'asdasd', 'asdasd']; //for column product_body_id
$product = Product::create($request->all());
$product->product_bodies()->attach($products);
I get the error:
General error: 1364 Field 'product_body_id' doesn't have a default value
If I do this:
public function product_bodies()
{
return $this->belongsToMany(static::class, 'product_bodies', 'product_id', 'product_body_id')->withPivot('product_id', 'product_body_id');
}
Then all works well. But then I can't get pivot data with:
$product->product_bodies;
I get empty items..
How can I fix this problem?
Table product_bodies
has 3 columns:
- id
- product_id
- product_body_id
In product_body_id I pass strings.