• 15-04-2020, 19:36:06
    #1
    Merhabalar.Mantığını kuramadığım bir sorunu sormak istiyorum.Veritabanımda kullanıcılar ve arkadaşlar olarak 2 tablom var.Sayfada göstermek istediğim kişiler kullanıcılar tablosunda bulunana kişilerin id si arkadaşlar tablosundaki kullanici_1 ve kullanici_2 sütununda bulunmuyorsa göster.Yani tabloda hiç bir şekilde onun id sinin geçmemesi gerekiyor.Nasıl bir yöntem kullanabilirm.Düşündüğümde where kullanımının tam tersi bir şey kullanmam gerek.Var mıdır böyle bir şey.Teşekkürler
  • 15-04-2020, 19:41:42
    #2
    sql Where not in (Gösterme istemediğiniz ID'ler) şeklinde yapabilrsin hocam basitçe
  • 15-04-2020, 19:48:17
    #3
    User::with('friends', function($q) {
        $q->where('kullanici_1', '!=', Auth::id() );
    })->take(10)->get();
    Oturumu açan kullanıcının arkadaş olmadığı 10 kişiyi çağırmak için örnek fonksiyon
  • 15-04-2020, 19:55:42
    #4
    Teşekkürler
  • 15-04-2020, 21:18:48
    #5
    hcan236124 adlı üyeden alıntı: mesajı görüntüle
    Hocam şuan kafam basmıyor hala.Mala anlatır gibi anlatma şansınız var mı acaba
    User::with('friends') kısmı kullanıcıların tümünü friends methodunu çalıştırarak çağırır. //User belongsToMany friends gibi
    $q->where('kullanici_1', '!=', Auth::id() ); bu kısım dönen kullanıcıları filtreler. ID, oturum sahibinin id'ye eşit değilse diye.
    ->take(10)->get() kısmı ise filtreleme sonucundan dönen veriden 10 tanesini alır ve array döndürür.

    Bu yapıyı kullanabilmek için User modelinde friends methodu oluşturmuş olman gerekli.
  • 15-04-2020, 22:23:05
    #6
    tematem adlı üyeden alıntı: mesajı görüntüle
    User::with('friends') kısmı kullanıcıların tümünü friends methodunu çalıştırarak çağırır. //User belongsToMany friends gibi
    $q->where('kullanici_1', '!=', Auth::id() ); bu kısım dönen kullanıcıları filtreler. ID, oturum sahibinin id'ye eşit değilse diye.
    ->take(10)->get() kısmı ise filtreleme sonucundan dönen veriden 10 tanesini alır ve array döndürür.

    Bu yapıyı kullanabilmek için User modelinde friends methodu oluşturmuş olman gerekli.
    tamamdır hocam şimdi çözüldü