我在查看页面上添加了一个按钮,但是当我单击它时,它应该显示在同一页面上,但是显示给我的结果将转到其他页面。 下面是视图文件的代码:
<a href="{{url('/cart/add')}}/{{$p->id}}" class="button add-cart-cat button--small card-figcaption-button">Add to Cart</a>
,控制器文件为:
public function addItem($id){
$pro = products::find($id);
Cart::add(['id' => $pro->id, 'name' => $pro->pro_name,
'qty' => 1, 'price' => $pro->pro_price,
'options' =>[
'img' => $pro->pro_img
]]);
echo "add to cart successfully";
}
在上面的控制器中,我提到过将传递该值,然后显示成功的消息,是的,但确实在其他空白页上显示了结果
顺便说一下,这也是我使用的路由文件
Route::get('cart/add/{id}', 'cartController@addItem');
那么,当我单击按钮时,是否可以在同一页面上显示结果?谢谢。
答案 0 :(得分:0)
请参阅docs。
问题是您要发布到/cart/add
,然后应该将用户重定向到页面上-但是您没有……相反,您只是在回应回到/cart/add
页面。
相反,这样做
public function addItem($id){
$pro = products::find($id);
Cart::add(['id' => $pro->id, 'name' => $pro->pro_name,
'qty' => 1, 'price' => $pro->pro_price,
'options' =>[
'img' => $pro->pro_img
]]);
//echo "add to cart successfully";
//Return the user back to the page they came from with a message
return back()->with('status', 'add to cart successfully');
}
然后在页面刀片文件中的添加到购物车按钮所在的位置,将此内容添加到某处...
//If the session has a message to display, then show it
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
如果您不使用Bootstrap,请根据需要自定义消息html / css。
答案 1 :(得分:0)
您没有重定向页面
您应该使用消息重定向路线。
示例
public function addItem($id){
$pro = products::find($id);
Cart::add([
'id' => $pro->id, 'name' => $pro->pro_name,
'qty' => 1, 'price' => $pro->pro_price,
'options' =>[
'img' => $pro->pro_img
]
]);
Session::flash('message', "add to cart successfully");
return Redirect::back();
}
注意:您必须将use Session;
后的namespace
放在控制器顶部
,然后您可以像这样在刀片中接收所有Flash消息:
@if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div>
@endif