2016-11-09 8 views
5

私が作業しているリンク共有Webサイトの投票システムを作成しています。Laravel 5 - 関係者としてリソースのすべての投票を返すときにユーザーが「投票しましたか」を確認する

ユーザーがリンクに投票すると、新しい行がリンクIDとユーザーIDでデータベースに追加されます。

私のコントローラでこれらのリンクを示すとき、私は関係(票)を呼び出す:

$links = Link::orderBy('created_at', 'desc')->with('votes')->paginate(20); 

そして、私の見解では、モデル内の関係

public function votes() 
{ 
    return $this->hasMany('\App\LinkVote'); 
} 

私は$上のforeachを実行していますそれぞれを表示するリンク。私の目的は、ユーザーがすでにそのリンクに投票した場合に別のボタンを表示することです。

ときdd'ing $リンク - >投票私が手:現在ログインしているユーザーならば、私は(私の見解ではとのforeachで)確認することができますどのように

enter image description here

は票の配列であります?

答えて

5

あなたはcontains()を試すことができます。

count()
$link->votes->contains('user_id', auth()->user()->id); 

またはwhere()

if ($link->votes->where('user_id', auth()->user()->id)->count()) { 
+1

私は私の頭の中で計画していたよりもはるかに簡単パーフェクトを、! – Lovelock

関連する問題