2016-11-09 18 views
5

ben üzerinde çalışıyorum bir bağlantı paylaşım sitesine yönelik bir oylama sistemi yapıyorum olarak kaynak için tüm oy dönerken. Yeni bir satır olarak bir bağlantıyı bir kullanıcı oy bağlantı kimliği ve kullanıcı kimliği ile db eklenirlaravel 5 - Bir kullanıcı varsa 'olarak' denetleme ilişkisi

.

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

Ve I $ bir foreach çalıştırıyorum Bence modeli

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

ilişkiyi: benim denetleyicisi bu bağlantıları gösterirken

ben bir ilişki (oy) diyoruz Her birini görüntülemek için bağlantılar. Amacım, kullanıcı zaten bu bağlantıya oy vermişse farklı bir düğme göstermektir.

zaman dd'ing $ bağlantıda bulabilirsiniz> oy alıyorum: Şu anda kullanıcı oyların o dizide olduğu kaydediliyor ise

enter image description here

nasıl (Bence ve foreachta) kontrol edebilirsiniz ?

cevap

5

Sen contains() deneyebilirsiniz: count() ile

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

Veya where():

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

Mükemmel, çok daha basit Kafamda planlıyordu daha! – Lovelock