Внешний ключ не работает - PullRequest
2 голосов
/ 15 октября 2019

Я получаю сообщение об ошибке 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');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...