2017-02-28 68 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 
]);