我有一个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')