2017-05-10 7 views
0

私はAPIを持っていますが、いくつかのルートには認証の有無にかかわらずアクセスできます。laravel 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を返します。

どうすれば修正できますか?

答えて

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; 
    } 

とモデルの一番上にインポート認証、

use Auth;

+0

に同じことをgiurd、頭に浮かぶ戻るヌル –

+0

ことの一つは、認証ミドルウェア自体である「API」を追加する必要があり、このメソッドを呼び出すことどんなルートやページがために定義された認証ミドルウェアを持っていることを確認してくださいそれ。 –

0

問題はAPIからauth()をチェックしようとしていたことです。私は

\auth()->check('api') 
関連する問題