Merhaba, daha önce normal sorgu ile kurduğum ilişkiyi eloquent ile yapmak istiyorum ama işin içinden çıkamadım.
Kullanıcılar veya sitede gerekli diğer bölümler için dinamik olarak yönetim panelinden form alanı eklemek için kullanıyorum. Alanları çekerken kullanıcının alan için girmiş olduğu değerleri de ilişkilendirip alıyorum. Alt alanları (radio, checkbox vb.) da ayrı olarak ilgili tablonun tümüne ait olanları çekip foreach ile alanlarının id 'sine göre grupluyorum.
Eloquentle yaparsam daha temiz olur diye düşündüm ancak güncellemesini ilişkili olarak yapabilecek miyim? Kullanıcı dinamik bir alanın değerini boş gönderdiğinde 'ozel_alan_deger' tablosuna kayıt açmıyorum, önceden açılmış olan kayıtları da siliyorum. Eloquent kullandığımda yapıda ne şekilde değişiklikler yapmam gerekecek?
Veritabanı Yapısı
Önceden Kullandığım Sorgu ve İşlem Kodları
$ozel_alanlar = DB::table('ozel_alan as a')
->leftJoin('ozel_alan_deger as d', function($join) use($kullaniciId){
$join->on('a.id', '=', 'd.ozel_alan_id')
->where('d.kullaniciId', '=', $kullaniciId);
})
->select('a.id', 'a.alan', 'a.aciklama', 'a.tur', 'a.ozellikler', 'd.id AS degerId', 'd.deger')
->where('a.tablo', '=', 'kullanici')
->where('a.tablo_kod', '=', 'pro')
->orderBy('a.sira')
->get();
$ozel_alt_alanlar = DB::table('ozel_alan_alt')
->select('*')
->where('tablo', '=', 'kullanici')
->where('tablo_kod', '=', 'pro')
->orderBy('sira')
->get();
$alt_alanlar = array();
foreach ($ozel_alt_alanlar as $alt_alan) {
$alt_alanlar[$alt_alan->ozel_alan_id][] = $alt_alan;
}