前提・実現したいこと
一覧になって表示されている商品毎に設置されている削除ボタンを押すと、商品一覧の下から削除されていく問題を解決したい。
該当のソースコード
----------リストの削除機能---------- * @param Product $favorite * @return \Illuminate\Http\RedirectResponse */ public function destroy(Product $favorite) { $favorite->favorites()->detach(Auth::id()); return redirect()->route('shop.favorites.index')->with(['deleted' => 'true']); } }
原因についての考察
$favorite->favorites()->detach(Auth::id());
↓
https://readouble.com/laravel/5.8/ja/eloquent-relationships.html
多対多リレーションのレコードを削除するにはdetachメソッドを使います。detachメソッドは中間テーブルから対応するレコードを削除します。しかし両方のモデルはデータベースに残ります。
上記より、テーブル全体にしか行ってないということで判断していない?
return redirect()->route('shop.favorites.index')->with(['deleted' => 'true']); }
↓
お気に入り一覧に、該当商品が消去された状態で戻す
この場合、
detachよりも適切な書き方があるのでしょうか?
もしくは、消去したい商品を指定する設定を追記することが必要なのでしょうか?
まだ経験が浅く、このレベルの考察しかできず申し訳ございませんが、
今後の調査の方向性だけでもお教えいただけますと幸いです。
よろしくお願いいたします。
あなたの回答
tips
プレビュー