调用未定义的方法 App\User::id() (视图:

Call to undefined method App\User::id() (View:

我已经为常用函数创建了自定义助手文件 App/Helpers/Helper.php,我正在尝试从助手中获取数据 class 我在 Helper.php 创建的。当我在 blade 文件中调用它时一切正常,它显示错误 "BadMethodCallException Call to undefined method App\User::id()"

Helper.php

<?php

use App\Cart;
use Illuminate\Support\Facades\Auth;

function totalCartItems()
{
    if (Auth::check()) {
        $user_id = Auth::user()->id();
        $totalCartItems = Cart::where('user_id', $user_id)->sum('quantity');
    } else {
        $session_id = Session::get('session_id');
        $totalCartItems = Cart::where('session_id', $session_id)->sum('quantity');
    }
    return $totalCartItems;
}

cart.blade

获得价值
<div class="breadcrumbs">
  <ol class="breadcrumb">
        <li><a href="#">Home</a></li>
        <li class="active">Shopping Cart ({{ totalCartItems() }} item)</li>
  </ol>
</div>

如何解决?

你应该使用:

Auth::user()->id

Auth::id()

相反。

而不是这样做

Auth::check()

使用这个

if(Auth::user() !== null)