簡體   English   中英

在 Laravel 中的控制器之間傳遞數據

[英]Pass Data Between Controllers in Laravel

我在我的 Laravel 網站上有一個視圖,其中顯示了一些產品。 當用戶點擊一個產品時,他們會被帶到那個特定的產品頁面。 在每個特定的產品頁面上,都有一個“訂購”按鈕。 當用戶單擊“訂購”按鈕時,他們將被帶到僅針對他們單擊“訂購”按鈕的特定產品的結帳頁面。 下面的controller把手展示了所有產品和單品。

產品控制器:

public function index()
    {
        $products = Product::get();

        return view('products.products')->with('products', $products);
    }

    public function show($slug)
    {
        $product = Product::where('slug', $slug)->firstOrFail();

        return view('products.product')->with('product', $product);
    }

路線:

Route::get('products', 'ProductController@index')->name('products');
Route::get('products/{product}', 'ProductController@show')->name('product');

Route::get('order', 'OrderController@create')->name('order')->middleware('verified');
Route::post('order', 'OrderController@order')->name('order');

我有一個單獨的 controller 來處理訂單頁面。 如何將特定產品的數據傳遞到訂單控制器/視圖中?

產品控制器:

public function show($slug)
    {
        $product= Product::where('slug', $slug)->firstOrFail();
        Session::put('product', $product);

        return view('products.product')->with('product', $product);
    }

訂單控制器:

public function create()
    {
        $product = Session::get('product');
        
        return view('user.order')->with('product', $product);
    }

這很簡單,只需通過路由將產品 id 傳遞給其他 controller 即可。 然后你可以按照 controller 的順序做任何你想做的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM