首页 > 解决方案 > 如何在视图中显示登录用户的订单数?

问题描述

我想在导航栏顶部跨视图显示订单计数。我知道共享视图,但我遇到的问题在Auth::check()这里总是错误的,即使我登录了。我怎样才能在boot方法中发生以下情况AppServiceProvider?有没有其他方法可以做到这一点,或者我必须依赖 Session vars?

if(Auth::check()) {
            $orders = Order::where( [ 'user_id' => Auth::user()->id, 'status' => 0 ] )->get();
            dd($orders);
        }

标签: laravellaravel-7

解决方案


在您的App\Providers\AppServiceProvider, 在boot方法中:

public function boot()
{
    view()->composer('*', function ($view)  {
        if(Auth::check()) {
            $order_count = Order::where( [ 'user_id' => Auth::user()->id, 'status' => 0 ] )->count();
            $view->with('order_count', $order_count);
        }
    });  

}

推荐阅读