购物车会话和显示购物车退货中的项目数在Laravel中未定义
我在页面顶部有购物车会话和显示购物车退货中的项目数在Laravel中未定义,laravel,laravel-5,Laravel,Laravel 5,我在页面顶部有Cart()按钮,该按钮用于存储和显示用户购物车的产品编号。它在未登录的用户上也可见,他们可以将产品放入购物车中。在Laravel4.2中,这非常有效,但我已经迁移到Laravel5.4,我没有遇到这个问题 这就是函数 protected function setupLayout() { $user = self::getCurrentUser(); View::share('user', $user); // this is the p
Cart()
按钮,该按钮用于存储和显示用户购物车的产品编号。它在未登录的用户上也可见,他们可以将产品放入购物车中。在Laravel4.2中,这非常有效,但我已经迁移到Laravel5.4,我没有遇到这个问题
这就是函数
protected function setupLayout()
{
$user = self::getCurrentUser();
View::share('user', $user);
// this is the part which cause error
View::share('cartCount', count(Session::get('cart', array())));
}
public static function isLoggedIn()
{
$user = Auth::user();
if ($user !== null) {
return true;
} else {
return false;
}
}
这是我的看法
@if(!Auth::check())
<li><a href="{{ URL::to('/cart') }}">Cart ( {{ $cartCount }} )</a></li>
@else
<li><a href="{{ URL::to('/cart') }}">Cart ( {{ $cartCount }} )</a></li>
@endif
请将其更新为{{$cartCount或'0'}。因此,如果用户首次加载页面时未设置该变量,则会显示0,并且不会出现任何错误。我认为您可以尝试以下方法:
@if(!Auth::check())
<li><a href="{{ URL::to('/cart') }}">Cart ( {{ isset($cartCount) ? $cartCount : 0}} )</a></li>
@else
<li><a href="{{ URL::to('/cart') }}">Cart ( {{ isset($cartCount) ? $cartCount : 0}} )</a></li>
@endif
@if(!Auth::check())
@否则
@恩迪夫
已更新:
protected function setupLayout()
{
$user = self::getCurrentUser();
$data = array(
'user' => $user,
'cartCount' => count(Session::get('cart', array())),
);
View::share('data', $data);
}
@if(!Auth::check())
<li><a href="{{ URL::to('/cart') }}">Cart ( {{ $data['cartCount']}} )</a></li>
@else
<li><a href="{{ URL::to('/cart') }}">Cart ( {{ $data['cartCount']}} )</a></li>
@endif
受保护的函数setupLayout()
{
$user=self::getCurrentUser();
$data=数组(
“用户”=>$user,
'cartCount'=>count(会话::get('cart',array()),
);
视图::共享('data',$data);
}
@如果(!Auth::check())
@否则
@恩迪夫
希望这为你工作 您在哪里定义
setupLayout
和isLoggedIn
?isLoggedIn
<代码>设置布局未被使用。应该删除。抱歉,它已被删除,但未被使用?这可能是问题所在,因为这就是你共享变量的地方:)嗯,好问题。我有另一个计数器,我已经从问题中删除了它,它正在工作View::share('messagescont',$user->messages()->where('read_state','0')->where('from_admin','1')->count())代码>仅此一个不起作用此{{$cartCount?'0':$cartCount}}
返回相同的错误。请尝试我在回答中所说的。{{$cartCount或“0”}正在加载页。但当我将产品添加到购物车中时,不会显示产品的数量。始终像其他答案一样显示0
。这只会使页面加载,但如果我将项目放在购物车中仍然显示0
,我已经用dd(Session::get('cart',array())
响应更新了问题,因此我确信其中有产品。如果我直接在blade中使用({{count(Session::get('cart',array())})
它显示的数字正确。仍然错误未定义变量:data
我也在AppServiceProvider
的boot()
函数中尝试过它。@Ivan:如果您可以在刀片文件中直接使用$cartCount,那么我想您可以尝试使用“返回视图()”
protected function setupLayout()
{
$user = self::getCurrentUser();
$data = array(
'user' => $user,
'cartCount' => count(Session::get('cart', array())),
);
View::share('data', $data);
}
@if(!Auth::check())
<li><a href="{{ URL::to('/cart') }}">Cart ( {{ $data['cartCount']}} )</a></li>
@else
<li><a href="{{ URL::to('/cart') }}">Cart ( {{ $data['cartCount']}} )</a></li>
@endif