Я получаю сообщение об ошибке Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint
, когда пользователь пытается добавить другой продукт в список желаний и когда пользователь пытается добавить продукт, который уже находится в списке желаний, также, если пользователь добавляет продукт 1 в список желаний, он добавляетдругой продукт, который я не нажал. Как я могу сделать так, чтобы пользователь добавил много и выбранный товар в список желаний?
Контроллер
public function index()
{
$user = Auth::user();
$wishlists = Wishlist::with('product')
->where('user_id', $user->id)
->paginate(6);
return view('front.wishlist', compact('user', 'wishlists'));
}
public function store(Request $request)
{
$this->validate($request, array(
'user_id'=>'required',
'product_id' =>'required',
));
$status=Wishlist::where('user_id',Auth::user()->id)
->where('product_id',$request->product_id)
->first();
if(isset($status->user_id) and isset($request->product_id))
{
return redirect()->back()->with('flash_messaged', 'This item is already in your
wishlist!');
}
else
{
$wishlist = new Wishlist;
$wishlist->user_id = $request->user_id;
$wishlist->product_id = $request->product_id;
$wishlist->save();
return redirect()->back();
}
}
Кнопка (добавить в список желаний)
<form action="{{route('wishlist.store')}}" method="post">
{{csrf_field()}}
<input name="user_id" type="hidden" value="{{Auth::user()->id}}" />
<input name="product_id" type="hidden" value="{{$product->id}}" />
</form>
Wishlist.php
class Wishlist extends Model
{
protected $table = "wishlists";
protected $fillable=['product_id','user_id'];
public function user(){
return $this->belongsTo(User::class);
}
public function product(){
return $this->belongsTo(Product::class, 'product_id');
}