mardi 15 octobre 2019

Foreign key fails laravel

I'm getting an error Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint when a user tries to add another product in wishlist and when a user tries to add the product which is already in wishlist, also if a user add product 1 to wishlist, it add a different product which I haven't clicked. How can I make user add many and chosen product in wishlist ?

Controller

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();
          }

}

The button ( add to wishlist)

<form action=""  method="post">

<input name="user_id" type="hidden" value="" />
<input name="product_id" type="hidden" value="" />
</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');
}


from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/2MI04CP
via IFTTT

Aucun commentaire:

Enregistrer un commentaire