我正在使用https://github.com/Crinsane/LaravelShoppingcart并且一切正常,但我的电子商务网站正在动态地从数据库中提取数据。所以我的问题是如何编辑下面的代码,说明是否有其他项目添加到购物车然后添加。
public function add_to_cart()
{
$page = Pages::all();
$input = Input::all();
$price = preg_replace('/[^0-9]+/', '', $input['options']);
if (!empty($input)) {
$cartContents = Cart::add(array('id' => randomNumber(), 'name' => $input['product_name'], 'qty' => 1, 'price' => $price));
$carts = Cart::content();
$cart_session = Cart::count();
Session::put('cart_sess', $cart_session);
}
return View::make('basket.cart', compact('page', 'cartContents', 'carts'));
}
由于上面的方法显示它添加了一个,但我似乎无法弄清楚如何添加多个项目以及添加交付,然后将它们全部添加到客户将支付的实际总数中。
其他人玩弄这个包装并设法使其正常工作?
非常感谢。
答案 0 :(得分:0)
这可能不是最好的答案,但它会完成这项工作。我对你的问题也有不同的解决方法 在您的视图中,请确保您有一个覆盖表格的表单以及全部更新按钮。 "继续结帐"可能只是一个按钮,因为您的购物车只是一个会话。
// View (notice how the name of the qty has the rowid):
{!! Form::open(array('route' => 'cart-update', 'id' => 'cart-form')) !!}
...
<td>
<div class="cart_quantity_button">
<input class="cart_quantity_input" type="number" name="quantity_{{ $row->rowid }}" min="1" max="10000" step="1" value="{{$row->qty}}" autocomplete="off" size="2">
</div>
</td>
...
<button type="submit" class="btn-black pull-right" id="update_shopping">Update Shopping Cart</button>
{!! Form::close() }}
// Routes
Route::post('cart/update/', array('as' => 'cart-update', 'uses' => 'CartController@updateAll'));
// Controller
use Cart;
public function updateAll(Request $request)
{
foreach($request->all() as $k => $v)
{
if ($k == "_token") continue;
$arr = explode("_", $k);
// Update the cart -> Cart::update($rowid, $qty);
Cart::update($arr[1], $v);
}
$cart = Cart::content();
return View::make('shoppingcart', compact('cart'));
}
有更好的方法可以做到这一点,但这应该满足您的需求。好吧,我希望