Laravelプロジェクトで、ルート[カート]が定義されていません

ガズミール・スルカジ

私のlaravelショッピングカートで削除関数を作成し、jsonまたはdd関数でテストする場合は問題ないようですが、ルートカートビューを返そうとするとどこに問題がありますかRoute [cart] not defined.同じ商品を1つだけ削除したい場合も、機能を最適化する必要がありました。つまり、1行に「1つのアイテムを削除」と「すべてのアイテムを削除」が必要です。

カートモデル:

class Cart 
{
   public $items = null;
   public $totalQty = 0;
   public $totalPrice = 0;

   public function __construct($oldCart)
   {
     if ($oldCart) {
        $this->items = $oldCart->items;
        $this->totalQty = $oldCart->totalQty;
        $this->totalPrice = $oldCart->totalPrice;
     }
   }

   public function add($item, $id)
   {
     $storedItem = ['qty' => 0, 'price' => $item->price, 'item' => $item, 'imagePath' => $item->imagePath];

     if ($this->items ) {

            if (array_key_exists($id, $this->items)) {
                 $storedItem = $this->items[$id];
             }
         }
         $storedItem['qty']++;
         $storedItem['price'] = $item->price * $storedItem['qty'];
         $storedItem['imagePath'] = $item->imagePath;
         $this->items[$id] = $storedItem;
         $this->totalQty++;
         $this->totalPrice += $item->price;
    }

    public function delete($id) {

        if(!$this->items || !isset($this->items[$id])) {
            return false;  // maybe throw an exception here?
        }
data of $this->items, create a method to calculate the totals when needed.
        $this->totalQty -= $this->items[$id]['qty'];
        $this->totalPrice -=  $this->items[$id]['price'] * $this->items[$id]['qty'];

        // and remove the item
        unset($this->items[$id]);
    }
}

カートコントローラー:

class ProductController extends Controller

{
    /**
    *@return \Illuminate\Http\Response
    */
    public function index()
    {
        $products = Product::all();
        return view('home', ['products'=> $products]);
    }

    public function getAddToCart(Request $request, $id) 
    {
        $product = Product::find($id);
        $oldCart = Session::has('cart') ? Session::get('cart') : null;
        $cart = new Cart($oldCart);
        $cart->add($product, $product->id);
        
        $request->session()->put('cart', $cart);
        return redirect()->route('home');
    }

    public function getCart()
    {
        if (!Session::has('cart')) {
            return view('cart');
        }
        $oldCart = Session::get('cart');

        $cart = new Cart($oldCart); 
        return view('cart', ['products' => $cart->items, 'totalPrice' => $cart->totalPrice]);
    }

    /**
     * Remove the specified resource from storage.
     * @param int $id
     * @return \Illuminate\Http\Request
     */
   public function destroy(Request $request, $id) {
        $oldCart = Session::has('cart') ? Session::get('cart') : null;
        $cart = new Cart($oldCart);
        $cart->delete($id);
        $request->session()->put('cart', $cart);
        return redirect()->route('cart');

        
        //return response()->json(array( 'totalqty' => $cart->totalQty, 'totalPrice' => $cart->totalPrice));
        //{"totalqty":0,"totalPrice":-222000}
    }

}

カートビュー:

<form method="POST" action="{{ route('cart.destroy', ['id' => $product['item']['id']]) }}" > 
            @csrf
            {{ method_field('DELETE') }}
            <input type="submit" value="Delete all items" onclick="return confirm('Are you sure?')" class="btn btn-danger" />
            <input type="submit" value="Delete 1 item" onclick="return confirm('Are you sure?')" class="btn btn-danger" />
      </form>
ガズミール・スルカジ

からreturn redirect()->route('cart');へのルートカートの問題を解決しましたreturn redirect()->route('shoppingCart');

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

オブジェクトがループで定義されていません

分類Dev

ローカルLaravelプロジェクトではブレードPHP変数が定義されていませんが、本番では定義されていませんか?

分類Dev

Firestoreルール:プロパティはオブジェクトで定義されていません

分類Dev

ローカルストレージが定義されていません

分類Dev

デフォルトのMFCプロジェクトではARGBが定義されていません

分類Dev

デフォルトのMFCプロジェクトではARGBが定義されていません

分類Dev

Visual Studio2017のreact / reduxプロジェクトでのブートストラップエラー「jQueryが定義されていません」

分類Dev

AngularJSモーダルダイアログフォームオブジェクトがコントローラーで定義されていません

分類Dev

参照エラー「オブジェクトプロパティが定義されていません」

分類Dev

オブジェクトがスコープで定義されていません

分類Dev

ジェストモジュールが定義されていません

分類Dev

ルートが定義されていません-Laravel

分類Dev

Laravel編集ルートが定義されていません

分類Dev

ルートが定義されていません。(laravel)

分類Dev

PHPルートが定義されていませんlaravel

分類Dev

ルート[/ createhotel]が定義されていません。laravel 5.4

分類Dev

明確に定義されているのに、プロジェクトでコンストラクターが見つかりませんか?

分類Dev

オブジェクトには、ユーザー定義テーブルSQLで定義されたサフィックスが含まれていません

分類Dev

エラーの取得ルートがLARAVELで定義されていません

分類Dev

Laravel:ルート[ログイン]が定義されていません

分類Dev

Laravel:ルート「ログイン」が定義されていませんか?

分類Dev

エラースクロールトップ:トップが定義されていません

分類Dev

emberjsプロジェクトにプラグインが含まれていて、ブラウザーで定義されていることを示していますが、アプリで呼び出すと定義されていません

分類Dev

ループで実行しているときはオブジェクトが定義されていませんが、順次実行されているときは定義されていません

分類Dev

ルートへのLaravelリンクが定義されていません

分類Dev

カスタムパッケージがインストールされていますが、別のプロジェクトで見つかりません

分類Dev

Typescript オブジェクトでセッターまたはプロパティが定義されていない場合は何もしませんか?

分類Dev

VS CodeのF#ASP.NETMVCプロジェクトで名前空間が定義されていません

分類Dev

ルート[admin / update]がLaravelで定義されていません

Related 関連記事

  1. 1

    オブジェクトがループで定義されていません

  2. 2

    ローカルLaravelプロジェクトではブレードPHP変数が定義されていませんが、本番では定義されていませんか?

  3. 3

    Firestoreルール:プロパティはオブジェクトで定義されていません

  4. 4

    ローカルストレージが定義されていません

  5. 5

    デフォルトのMFCプロジェクトではARGBが定義されていません

  6. 6

    デフォルトのMFCプロジェクトではARGBが定義されていません

  7. 7

    Visual Studio2017のreact / reduxプロジェクトでのブートストラップエラー「jQueryが定義されていません」

  8. 8

    AngularJSモーダルダイアログフォームオブジェクトがコントローラーで定義されていません

  9. 9

    参照エラー「オブジェクトプロパティが定義されていません」

  10. 10

    オブジェクトがスコープで定義されていません

  11. 11

    ジェストモジュールが定義されていません

  12. 12

    ルートが定義されていません-Laravel

  13. 13

    Laravel編集ルートが定義されていません

  14. 14

    ルートが定義されていません。(laravel)

  15. 15

    PHPルートが定義されていませんlaravel

  16. 16

    ルート[/ createhotel]が定義されていません。laravel 5.4

  17. 17

    明確に定義されているのに、プロジェクトでコンストラクターが見つかりませんか?

  18. 18

    オブジェクトには、ユーザー定義テーブルSQLで定義されたサフィックスが含まれていません

  19. 19

    エラーの取得ルートがLARAVELで定義されていません

  20. 20

    Laravel:ルート[ログイン]が定義されていません

  21. 21

    Laravel:ルート「ログイン」が定義されていませんか?

  22. 22

    エラースクロールトップ:トップが定義されていません

  23. 23

    emberjsプロジェクトにプラグインが含まれていて、ブラウザーで定義されていることを示していますが、アプリで呼び出すと定義されていません

  24. 24

    ループで実行しているときはオブジェクトが定義されていませんが、順次実行されているときは定義されていません

  25. 25

    ルートへのLaravelリンクが定義されていません

  26. 26

    カスタムパッケージがインストールされていますが、別のプロジェクトで見つかりません

  27. 27

    Typescript オブジェクトでセッターまたはプロパティが定義されていない場合は何もしませんか?

  28. 28

    VS CodeのF#ASP.NETMVCプロジェクトで名前空間が定義されていません

  29. 29

    ルート[admin / update]がLaravelで定義されていません

ホットタグ

アーカイブ