第五个参数未显示在 cart.index 页面中
Posted
技术标签:
【中文标题】第五个参数未显示在 cart.index 页面中【英文标题】:fifth parameter is not displaying in the cart.index page 【发布时间】:2018-12-04 17:07:09 【问题描述】:我正在发送五个参数以添加到购物车功能,这是代码
<form action="route('cart.store')" method="post"> csrf_field()
<input type="hidden" name="id" value="$product->id">
<input type="hidden" name="name" value="$product->name">
<input type="hidden" name="price" value="$product->price">
<input type="hidden" name="destination" value="$product->destination">
value="">
<button type="submit">click me</button>
</form>
cartController的代码是
public function store(Request $request)
Cart::add($request->id, $request->name, 1 , $request->price , ['destination' => $request->destination]);
return redirect()->route('cart.index')->with('success_message','Item was added to your cart');
// i have also tried
Cart::add(array('id' => $request->id, 'name' => $request->name, 'qty' => 1,
'price' => $request->price, 'destination' => $request->destination));
cart.index 的代码是
<tbody>
@foreach(Cart::content() as $row)
<tr>
<td><a href="#"><img src="img/detailsquare.jpg" class="img-fluid"></a></td>
<td><a href="#">$row->id</a></td>
<td><a href="#">$row->name</a></td>
<td>$row->qty</td>
<td>$row->price</td>
<td>$row->destination</td>
<td><a href="#"><i class="fa fa-trash-o"></i></a></td>
</tr>
@endforeach
</tbody>
这没有给我任何错误并显示产品 ID、名称、数量、价格,但没有显示目的地。谁有解决办法
【问题讨论】:
对于一些快速调试,$product->destination ?? 'product destination is empty'
和 $request->get('destination', 'request destination is empty')
。
我想展示一些关于产品的额外细节。那为什么使用这个目的地,但是正如你所说,这给了我空的结果,如何解决这个问题?
很可能在创建产品时没有存储目的地。请检查 db 以确定。
是的,当我使用 var_dump($request) 检查时,它显示的是空的目标字段。您是对的,在创建产品时没有存储目的地。你有什么解决办法吗?
您需要在创建产品时正确存储目的地。您需要单独发布一篇文章,其中包含与创建产品相关的代码。
【参考方案1】:
删除输入类型后的多余行:
<form action="route('cart.store')" method="post"> csrf_field()
<input type="hidden" name="id" value="$product->id">
<input type="hidden" name="name" value="$product->name">
<input type="hidden" name="price" value="$product->price">
<input type="hidden" name="destination[]" value="$product->destination">
/*value=""> */ // **remove this line**
<button type="submit">click me</button>
</form>
如果不工作,则从 cartController 尝试 var_dump($request)
并查看结果。
试试这个:
public function store(Request $request)
Cart::add($request->id, $request->name, 1 , $request->price , $request->destination);
return redirect()->route('cart.index')->with('success_message','Item was added to your cart');
还要检查你的模型和数据库。
【讨论】:
是的,当我使用 var_dump($request) 检查时,它显示的是空的目标字段。创建产品时未存储目的地。你有什么解决办法吗? 它给了我错误,参数 5 必须是数组类型。我正在使用 crisane laravel 购物车name="destination[]"
在您的输入类型字段中使用它
是的,该错误现在已被删除。但它现在在 cart.index 页面中显示目的地(同样的问题)。 white 使用 dd($request) 它显示数组目标的值,以上是关于第五个参数未显示在 cart.index 页面中的主要内容,如果未能解决你的问题,请参考以下文章