我有一个视图编辑器,我正在使用它来计算所有在购物篮(这是我包含很多的部分)中创建的应用程序的变量。它本质上是一个更复杂的版本是:Laravel将Ajax与View Composer结合使用
public function compose($view)
{
$giftbox_total_pre = Giftbox::getTotal();
$giftbox_items_total = number_format($giftbox_total_pre, 2);
$view->with(compact(
'giftbox_items_total',
));
}
在我的路线
然后我有:
View::composer(['layouts.bag', 'shop.basket', 'giftbox.basket'], 'Acme\Composers\BasketComposer');
但是,我只是将Ajax添加到我的应用程序,这将是一件好事,如果在请求之后,我可以从View Composer中获取变量。有没有办法做到这一点?或者在这种情况下作曲家是错误的东西?
例如,要添加一个项目没有Ajax,我有如下所示路线的控制器功能:
Route::post('/cart/add/{type?}/{quantity?}', '[email protected]');
和控制器:
public function addToCart($type='subscription', $quantity=1)
{
$product = Product::find(Input::get('id'));
$price = $product->box_price;
Cart::insert([
'id' => $type . $product->id,
'table_id' => $product->id,
'name' => $product->name,
'price' => $price,
'quantity' => $quantity,
'cart_type' => $type,
]);
return Redirect::back()->with('success', 'Added to cart!');
}
首先,适当的,Laravel项目,所以我可能让自己陷入一片混乱!我可以将Ajax提交到路线并且工作正常,但我无法弄清楚如何取回购物车的体面JSON数组。
所以反应应该是全车加上'giftbox_items_total'喜欢你拥有了它在视图作曲家作为JSON? – lukasgeiter
是的,但是如何访问视图编辑器中创建的变量? – Djave