Laravel 5.2 - 通过JSON响应发送对象时的问题

时间:2017-02-28 14:45:56

标签: php ajax laravel-5.2

我有我的CartController,并有一个方法add()将项目添加到购物车。我们的想法是使用AJAX调用此方法,并在将项成功添加到购物车后生成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
    ]);
   }
}

My Cart-Items具有多对多的关系,而我的User-Cart具有一对一的关系。

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

1 个答案:

答案 0 :(得分: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
]);