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