2016-04-03 18 views
0

私のモデルにAuth::id()を取得して、現在のユーザーが投票しているかどうかを確認する必要があります。 Eloquentモデルで現在のユーザーにアクセスするには?Laravel現在のモデルのユーザー

モデル: 名前空間App。あなたはこのようなcontrollerActicleのインスタンスを作成した後方法getIsUserVotedAttribute()を呼び出すために計画している場合は、私がnull

+0

を役に立てば幸い? –

+0

このクラスにインポートを表示する – Naumov

+0

質問が更新されました。私はnullを取得 –

答えて

0

\Auth::id()を取得getIsUserVotedAttribute方法で

use App\User; 
use App\ArticleVote; 
use Illuminate\Database\Eloquent\Model; 

class Article extends Model { 
    protected $fillable = ['title', 'body', 'link']; 
    protected $appends = ['votesCount', 'isUserVoted']; 

    public function getIsUserVotedAttribute() { 
    return !!$this->votes()->where('user_id', \Auth::id())->first(); 
    } 
} 

$article = new Article; 
$article->getIsUserVotedAttribute(); 

私は示唆しますmethodを定義するときにuser idをパラメータとして渡します。

public function getIsUserVotedAttribute($user_id) { 
    return !!$this->votes()->where('user_id', $user_id)->first(); 
} 

次にあなたがこの

$article = new Article; 
$article->getIsUserVotedAttribute(Auth::user()->id); 

ようなあなたのコントローラで使用することができますが、あなたはIDまたはヌルを得る意味でください、それは

+0

残念なことに私はこのように私はJSONを返すためにトランスフォーマーを使用し、私のインデックスメソッドは、このような 'return $ this-> response-> withPaginator(Article :: orderBy( '​​id'、 'desc')のように見える - >ページ設定(15)、新しい記事トランスフォーマー、 '記事'); –

関連する問題