【发布时间】:2017-12-17 21:08:54
【问题描述】:
如果用户是访客,我正在尝试获取会话变量。该变量称为“cart”,设置如下:
$product = new Collection((object) [
'product_id' => $request->pId,
'amount' => $request->amount,
'variations' => $variations
]);
Session::push('cart', $product);
然后我稍后再取它:
if(Auth::check()){
$cartProducts = ShoppingCartItem::where('user_id', '=', Auth::user()->id)->get();
}else{
$cartProducts = Session::get('cart');
}
foreach($cartProducts as $product){
dd($product);
$totalAmount += $product->amount;
$totalPrice += (PriceHelper::getProductPrice($product->product->id, $product->amount));
}
这里的问题是dd($product) 仍然输出一个数组(我假设的会话变量数组),这意味着例如$product->amount 不存在。
这是dd($product)的输出:
【问题讨论】:
-
所以问题是即使您已登录 Auth::check() 返回 false(从而导致此问题)?
-
不,这很好用。当我注销时,我正在尝试从会话中获取我的购物车中的产品,这工作正常。不起作用的是我不能使用
$product->amount,即使“金额”在$product变量中
标签: arrays laravel session object