2017-02-28 69 views
0

我有我的CartController并有一个方法add()将一个项目添加到购物车。我们的想法是使用AJAX调用此方法,并在成功将该项添加到购物车后生成JSON响应。Laravel 5.2 - 通过JSON响应发送对象时的问题

class CartController extends Controller 
{ 
    public function add(Request $request, $itemid){ 

    $cart = Auth::user()->cart; 
    $item = Item::find($itemid); 

    $cart->items()->attach($item); 

    return Response::json([ 
    'success' => true, 
    'cart' => $cart 
    ]); 
    } 
} 

我的购物车项目具有多对多的关系,而我的用户购物车具有一对一的关系。

当我将第一个项目添加到购物车时,数据库正确更新,但是我的$购物车在响应中不包含项目详细信息。购物车下的商品数组是空的,而没有加载关系。我似乎做错了什么?

回答

1

为了确保json响应具有购物车项目,您应该急于加载这些项目。这可以使用load函数完成。

$cart = Auth::user()->cart; 
$item = Item::find($itemid); 

$cart->items()->attach($item); 

// Reload items 
$cart->load('items'); 

return Response::json([ 
    'success' => true, 
    'cart' => $cart 
]);