Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Durum şöyle
one to many bir ilişkim var örnek olarak düşünelim bir user-address ilişkisi olsun
gerekli kontrol sağlanmamış ve addrese var olmayan bir kişi atanmış.

blade de $adress->user->column diyince hata veriyor

adres tablosundaki kişileri kontrol edip olmayanı bana id şeklinde dönmesi raw sql ile nasıl yapabilirim ?

  • mgsmus bunu yanıtladı.
  • nuri60

    addresses tablosunda olup da artık users tablosunda olmayan kullanıcılar:

    SELECT 
      addresses.user_id as user_id 
    FROM 
      users 
      RIGHT JOIN addresses ON addresses.user_id = users.id 
    WHERE 
      users.id IS NULL
    $userIds = DB::table('users')
        ->select('addresses.user_id as user_id')
        ->rightJoin('addresses', 'users.id', '=', 'addresses.user_id')
        ->whereNull('users.id')
        ->pluck('user_id');

    Tabi bunu engellemenin en başta yolu addresses tablosuna user_id alanını constrained fk olarak eklemek:

    $table->foreignId('user_id')->constrained();

    Böylece adresi olan kullanıcının silinmesi engellenmiş olur.

    • mgsmus

      Seviye 1379
    • Düzenlendi
    • En İyi Yanıtnuri60 tarafından

    nuri60

    addresses tablosunda olup da artık users tablosunda olmayan kullanıcılar:

    SELECT 
      addresses.user_id as user_id 
    FROM 
      users 
      RIGHT JOIN addresses ON addresses.user_id = users.id 
    WHERE 
      users.id IS NULL
    $userIds = DB::table('users')
        ->select('addresses.user_id as user_id')
        ->rightJoin('addresses', 'users.id', '=', 'addresses.user_id')
        ->whereNull('users.id')
        ->pluck('user_id');

    Tabi bunu engellemenin en başta yolu addresses tablosuna user_id alanını constrained fk olarak eklemek:

    $table->foreignId('user_id')->constrained();

    Böylece adresi olan kullanıcının silinmesi engellenmiş olur.

    5 gün sonra