laravel Auth ::检查不在模型中工作

时间:2017-05-10 20:13:19

标签: php laravel eloquent

我有一个API,可以使用或不使用auth访问某些路由。

用户可以打开药房,如果他已登录,他可能会喜欢或不喜欢;如果他没有登录,则为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

我该如何解决?

2 个答案:

答案 0 :(得分:0)

尝试按auth()->check()(删除' \')或Auth::check()进行操作,这样就可以了:

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

在模型顶部导入Auth,

use Auth;

答案 1 :(得分:0)

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

\auth()->check('api')