Php 如何将刀片文件中的集合或数组传递给laravel中的控制器?

Php 如何将刀片文件中的集合或数组传递给laravel中的控制器?,php,laravel,laravel-blade,laravel-controller,Php,Laravel,Laravel Blade,Laravel Controller,$cartItems包含数据库中的所有产品行,我正在刀片文件中使用它 我想从此刀片文件将此$cartItems传递回控制器 注意:$cartItems来自如下控制器中的index()函数 $cartimes=DB::table('products')->其中('id',$cartimesarray)->get(); 返回视图('cart.index',压缩('cartItems')) 下面是我的代码 index.blade.php web.php Route::get('/cart/che

$cartItems
包含数据库中的所有产品行,我正在刀片文件中使用它

我想从此刀片文件将此
$cartItems
传递回控制器

注意:
$cartItems
来自如下控制器中的
index()
函数

$cartimes=DB::table('products')->其中('id',$cartimesarray)->get();
返回视图('cart.index',压缩('cartItems'))
下面是我的代码

index.blade.php


web.php

Route::get('/cart/checkout/{cartimes}','CartController@checkout')->name('cart.checkout')->中间件('auth');
CartController.php

公共功能签出($cartItems)
{
dd($项目);
返回视图('cart.checkout');
}
我得到的错误是

缺少[Route:cart.checkout][URI:cart/checkout/{cartItems}]所需的参数。(视图:E:\github\LARAVEL\Deal Ocean\resources\views\cart\index.blade.php)


为什么在中的签出方法中使用与index()方法相同的代码逻辑 CartController

签出方法如下所示:

   $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');
使用表单将数据发布到服务器。您还可以将任何附加数据与请求一起传递

<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>

如果您想继续执行get请求,您应该能够执行以下操作

由于
$cartimes
是产品的集合。因此,您可以发送产品ID并使用请求中的ID查询产品

<a href="{{ route('cart.checkout', ['cartItems' => $cartItems->pluck('id')->toArray()]) }}" 
    class="site-btn">Proceed to checkout</a>

我在index.blade中有购物车页面。我在该页面中有发生次数的产品。并计算了总价。现在我必须将
$carttItems
$totalPrice
发送到
CartController
。并使用它进行进一步计算。但如果无法直接发送数据,则必须在中再次查询e> 签出方法。我可以发送普通
变量
,但无法发送数组
<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');
}