php - 在 Laravel 中的控制器之间传递数据
问题描述
我在我的 Laravel 网站上有一个视图,其中显示了一些产品。当用户点击一个产品时,他们会被带到那个特定的产品页面。在每个特定的产品页面上,都有一个“订购”按钮。当用户单击“订购”按钮时,他们将被带到仅针对他们单击“订购”按钮的特定产品的结帐页面。下面的控制器处理显示所有产品和单个产品。
产品控制器:
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');
我有一个单独的控制器来处理订单页面。如何将特定产品的数据传递到订单控制器/视图中?
解决方案
产品控制器:
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);
}