Gloudemans 购物车内容在重定向到视图时为空,但使用 dd() 可见
Gloudemans Cart content is empty when redirected to a view but is visible with dd()
我想在将商品添加到购物车后重定向到索引视图。但是 Cart::content 似乎未设置。我可以 return 使用 dd();
的内容
这是视图中的表格:
{!! Form::open(['action' => ['CartController@add', $account->id], 'method' => 'POST']) !!}
{{ Form::hidden('product_id', $product->id) }}
{{ Form::hidden('product_name', $product->product_name) }}
{{ Form::hidden('price', $product->price) }}
<tr>
<td><a href="/inventory/view-product/{{ $product->id }}">{{ $product->id }}</a></td>
<td><a href="/inventory/view-product/{{ $product->id }}">{{ ucwords($product->product_name) }}</a></td>
<td><strong>{{ number_format($product->price, 2) }}</strong> per {{ ucwords($product->unit) }}</td>
<td>{{ Form::number('qty', '1', ['style' => 'width:50px']) }}</td>
<td>{{ Form::button('Add', ['type' => 'submit', 'name' => 'action', 'value' => 'add', 'class' => 'btn btn-primary']) }}</td>
</tr>
{{ Form::hidden('_method', 'PUT') }}
{!! Form::close() !!}
控制器中的index和add函数如下:
public function index($id)
{
$account = Customer::find($id);
$products = Product::all();
$business_units = BusinessUnit::all();
$cartItems = Cart::content();
//dd($account);
return view('cart.index')
->with('account', $account)
->with('products', $products)
->with('business_units', $business_units);
}
public function add(Request $request, $id)
{
//dd($request);
$product_id = $request->input('product_id');
$product_name = $request->input('product_name');
$price = $request->input('price');
$qty = $request->input('qty');
$url = $request->input('url');
Cart::add($product_id, $product_name, $qty, $price);
$cartItems = Cart::content();
//dd($cartItems);
return redirect()->back()->with('cartItems', $cartItems);
}
我想使用重定向,因为它必须使用搜索功能的参数返回到索引需求。
这就是我尝试访问购物车内容的方式:
@if(isset($cartItems))
@foreach ($cartItems as $cartItem)
<tr>
<td class="center">1</td>
<td class="left strong">Jasmine Rice</td>
<td class="left">Long-grain variety of fragrant rice.</td>
<td class="right">99.99</td>
<td class="center"><input type="number" value="1" style="width:50px"></td>
<td class="right">₱2,499.75</td>
</tr>
@endforeach
@else
<tr>
<td colspan="6" class="text-center">No item selected</td>
</tr>
@endif
它会产生 "No item selected" 但我再次能够使用 dd();
查看内容
希望大家帮帮忙! laravel
我认为如果您在 index()
方法中将 cartItems
传递给您的视图,您应该能够看到购物车项目,因为应该从数据库中再次获取更新的数据(包括新创建的项目)。然后不需要将 cartItems
与重定向一起传递。我认为 with
方法在任何情况下调用 back()
方法后都不会执行任何操作。
所以尝试:
$cartItems = Cart::content();
return view('cart.index')
->with('account', $account)
->with('products', $products)
->with('cartItems', $cartItems)
->with('business_units', $business_units);
我想在将商品添加到购物车后重定向到索引视图。但是 Cart::content 似乎未设置。我可以 return 使用 dd();
的内容这是视图中的表格:
{!! Form::open(['action' => ['CartController@add', $account->id], 'method' => 'POST']) !!}
{{ Form::hidden('product_id', $product->id) }}
{{ Form::hidden('product_name', $product->product_name) }}
{{ Form::hidden('price', $product->price) }}
<tr>
<td><a href="/inventory/view-product/{{ $product->id }}">{{ $product->id }}</a></td>
<td><a href="/inventory/view-product/{{ $product->id }}">{{ ucwords($product->product_name) }}</a></td>
<td><strong>{{ number_format($product->price, 2) }}</strong> per {{ ucwords($product->unit) }}</td>
<td>{{ Form::number('qty', '1', ['style' => 'width:50px']) }}</td>
<td>{{ Form::button('Add', ['type' => 'submit', 'name' => 'action', 'value' => 'add', 'class' => 'btn btn-primary']) }}</td>
</tr>
{{ Form::hidden('_method', 'PUT') }}
{!! Form::close() !!}
控制器中的index和add函数如下:
public function index($id)
{
$account = Customer::find($id);
$products = Product::all();
$business_units = BusinessUnit::all();
$cartItems = Cart::content();
//dd($account);
return view('cart.index')
->with('account', $account)
->with('products', $products)
->with('business_units', $business_units);
}
public function add(Request $request, $id)
{
//dd($request);
$product_id = $request->input('product_id');
$product_name = $request->input('product_name');
$price = $request->input('price');
$qty = $request->input('qty');
$url = $request->input('url');
Cart::add($product_id, $product_name, $qty, $price);
$cartItems = Cart::content();
//dd($cartItems);
return redirect()->back()->with('cartItems', $cartItems);
}
我想使用重定向,因为它必须使用搜索功能的参数返回到索引需求。
这就是我尝试访问购物车内容的方式:
@if(isset($cartItems))
@foreach ($cartItems as $cartItem)
<tr>
<td class="center">1</td>
<td class="left strong">Jasmine Rice</td>
<td class="left">Long-grain variety of fragrant rice.</td>
<td class="right">99.99</td>
<td class="center"><input type="number" value="1" style="width:50px"></td>
<td class="right">₱2,499.75</td>
</tr>
@endforeach
@else
<tr>
<td colspan="6" class="text-center">No item selected</td>
</tr>
@endif
它会产生 "No item selected" 但我再次能够使用 dd();
查看内容希望大家帮帮忙! laravel
我认为如果您在 index()
方法中将 cartItems
传递给您的视图,您应该能够看到购物车项目,因为应该从数据库中再次获取更新的数据(包括新创建的项目)。然后不需要将 cartItems
与重定向一起传递。我认为 with
方法在任何情况下调用 back()
方法后都不会执行任何操作。
所以尝试:
$cartItems = Cart::content();
return view('cart.index')
->with('account', $account)
->with('products', $products)
->with('cartItems', $cartItems)
->with('business_units', $business_units);