如何将 collection 或数组从 blade 文件传递到 laravel 中的控制器?
How to pass a collection or array from blade file to controller in laravel?
$cartItems
包含数据库中的所有产品行,我在 blade 文件中使用它。
我想将这个 $cartItems
从这个 blade 文件传回控制器
注意:$cartItems
来自如下控制器中的 index()
函数。
$cartItems = DB::table('products')->whereIn('id', $cartItemsArray)->get();
return view('cart.index', compact('cartItems')
下面是我的代码。
index.blade.php
<a href="{{route('cart.checkout',$cartItems)}}" class="site-btn">Proceed to checkout</a>
web.php
Route::get('/cart/checkout/{cartItems}', 'CartController@checkout')->name('cart.checkout')->middleware('auth');
CartController.php
public function checkout($cartItems)
{
dd($cartItems);
return view('cart.checkout');
}
我得到的错误是,
Missing required parameters for [Route: cart.checkout] [URI: cart/checkout/{cartItems}]. (View: E:\github\LARAVEL\Deal-Ocean\resources\views\cart\index.blade.php)
为什么在checkout方法中使用与index()方法相同的代码逻辑
购物车控制器。
结帐方法如下所示:
$cartItems = DB::table('products')->whereIn('id', $cartItemsArray)->get();
return view('cart.checkout', compact('cartItems');
您可以使用表单将数据发送回服务器
将您的路线从 get
更新为 post
Route::post('/cart/checkout', 'CartController@checkout')->name('cart.checkout')->middleware('auth');
使用表单 post 数据到服务器。您也可以随请求一起传递任何其他数据。
<form method="post" action="/cart/checkout">
@foreach($cartItems as $item)
<input name="cartItems[]" value="{{ $item->id }}"
@endforeach
<button class="site-btn">Proceed to checkout</button>
</form>
并在您的控制器中使用 Request
访问数据
public function checkout(Request $request)
{
$cartItems = DB::table('products')->whereIn('id', $request->get($cartItems))->get();
dd($cartItems);
return view('cart.checkout');
}
如果您想继续获取请求,您应该可以按照以下步骤进行操作
因为$cartItems
是产品集合。因此,您可以发送产品 ID 并使用请求中的 ID 查询产品。
<a href="{{ route('cart.checkout', ['cartItems' => $cartItems->pluck('id')->toArray()]) }}"
class="site-btn">Proceed to checkout</a>
更新控制器
public function checkout(Request $request)
{
$cartItems = DB::table('products')->whereIn('id', $request->get($cartItems))->get();
dd($cartItems);
return view('cart.checkout');
}
$cartItems
包含数据库中的所有产品行,我在 blade 文件中使用它。
我想将这个 $cartItems
从这个 blade 文件传回控制器
注意:$cartItems
来自如下控制器中的 index()
函数。
$cartItems = DB::table('products')->whereIn('id', $cartItemsArray)->get();
return view('cart.index', compact('cartItems')
下面是我的代码。
index.blade.php
<a href="{{route('cart.checkout',$cartItems)}}" class="site-btn">Proceed to checkout</a>
web.php
Route::get('/cart/checkout/{cartItems}', 'CartController@checkout')->name('cart.checkout')->middleware('auth');
CartController.php
public function checkout($cartItems)
{
dd($cartItems);
return view('cart.checkout');
}
我得到的错误是,
Missing required parameters for [Route: cart.checkout] [URI: cart/checkout/{cartItems}]. (View: E:\github\LARAVEL\Deal-Ocean\resources\views\cart\index.blade.php)
为什么在checkout方法中使用与index()方法相同的代码逻辑 购物车控制器。
结帐方法如下所示:
$cartItems = DB::table('products')->whereIn('id', $cartItemsArray)->get();
return view('cart.checkout', compact('cartItems');
您可以使用表单将数据发送回服务器
将您的路线从 get
更新为 post
Route::post('/cart/checkout', 'CartController@checkout')->name('cart.checkout')->middleware('auth');
使用表单 post 数据到服务器。您也可以随请求一起传递任何其他数据。
<form method="post" action="/cart/checkout">
@foreach($cartItems as $item)
<input name="cartItems[]" value="{{ $item->id }}"
@endforeach
<button class="site-btn">Proceed to checkout</button>
</form>
并在您的控制器中使用 Request
访问数据
public function checkout(Request $request)
{
$cartItems = DB::table('products')->whereIn('id', $request->get($cartItems))->get();
dd($cartItems);
return view('cart.checkout');
}
如果您想继续获取请求,您应该可以按照以下步骤进行操作
因为$cartItems
是产品集合。因此,您可以发送产品 ID 并使用请求中的 ID 查询产品。
<a href="{{ route('cart.checkout', ['cartItems' => $cartItems->pluck('id')->toArray()]) }}"
class="site-btn">Proceed to checkout</a>
更新控制器
public function checkout(Request $request)
{
$cartItems = DB::table('products')->whereIn('id', $request->get($cartItems))->get();
dd($cartItems);
return view('cart.checkout');
}