laravel Auth::check not working in Model



我有一个API,有些路由可以在有或没有身份验证的情况下访问。

用户可以打开药房,如果他登录了

,他可能会喜欢或不喜欢它;如果他没有登录,它将是0。

这是我的模型:

protected $fillable = ['name', 'city_id', 'block_id', 'address', 'contact', 'image', 'status', 'user_id'];
protected $appends = ['favourite'];
public function getFavouriteAttribute()
{
    //return auth()->id();
    if (auth()->check()) {
        return (FavouritePharmacy::where('user_id', auth()->id())->where('pharmacy_id', $this->id)->count() == 1) ? 1 : 0;
    }
    return 0;
}
}

问题是 favourite 属性始终返回 0。

当我检查身份验证时,它返回null.

我该如何解决这个问题?

尝试像auth()->check()一样做(去掉'\'(或Auth::check(),这样它就是:

if (Auth::check()) {
        return (FavouritePharmacy::where('user_id', Auth::user()->id)->where('pharmacy_id', $this->id)->count() == 1) ? 1 : 0;
    }

并在模型顶部导入身份验证,

use Auth;

问题是我正在尝试从 api 检查 auth((。 所以我应该添加'api' giurd

auth()->check('api')

最新更新