Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 09.01.2019 09:32:30

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 217

Select Box Pivot ilişkisi

Merhabalar kolay gelsin arkadaşlar, hasta kabul sistemi yapıyorum, hastanın adı soy adı vs işlemlerini kaydettikten sonra, hastayı hangi branşlar kabul etti ise selecbox ile bunları işaretliyorum, bu iki durumu hasta_brans_pivot adında  bir tabloda tutuyorum hasta_id ve brans_id , kısımlarını burada yazdırıyorum. buraya kadar sorun yok, hastayı düzenlemek istediğimde bu selectbox ların işarediklerimin  seçili gelmesini istiyorum. bunu nasıl yapabilirim.bir fikri olan var mı ? yardımcı olursanız sevinirim.

Çevrimdışı

#2 09.01.2019 10:16:52

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,427
Website

Yanıt: Select Box Pivot ilişkisi

Hasta ile branş modeli arasında many-to-many/belongsToMany ilişkisi kurduysanız

$hasta->branslar->contains(1); // bool

şeklinde "hasta, id'si 1 olan branşa sahip mi" şeklinde kontrol edebilirsiniz.

Select oluştururken de:

<select name="branslar" multiple>
@foreach($branslar as $brans)
   <option value="{{ $brans->id }}" {{ $hasta->branslar->contains($brans->id) ? 'selected' : null }}>{{ $brans->name }}</option>
@endforeach
</select>

gibi

Çevrimdışı

#3 09.01.2019 13:23:39

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 217

Yanıt: Select Box Pivot ilişkisi

üstad teşekkür ediyorum  peki, bu pivot ilişkisi nasıl olmalı Hasta ve Brans adında iki modülüm  ve Hasta_brans_pivot adında bir tablom var pivot tablosunda hasta_id ve brans_id kısmı var bu modüller arasındaki many-to-many/belongsToMany ilişkisi nasıl olmalı controllerden  view e nasıl göndermeliyim

Çevrimdışı

#4 09.01.2019 14:16:46

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,427
Website

Yanıt: Select Box Pivot ilişkisi

// app/Hasta.php
public function branslar()
{
    return $this->belongsToMany(Brans::class, 'hasta_brans_pivot', 'hasta_id', 'brans_id');
}

şeklinde olacak. Böylece hastaya şu şekilde branş ekleyebileceksiniz:

$hasta = Hasta::findOrFail($id);

$branslar = [1,2,3]; // id'si 1,2 ve 3 olan branşlar. Sizde bu veritabanında gelecek doğal olarak

// id'si 1,2 ve 3 olan branşlar ile hastayı ilişkilendirir:
$hasta->branslar()->attach($branslar);

// id'si 2 ve 3 olan branşları hastadan siler
$hasta->branslar()->detach([2,3]);

// id'si 1 olan branşla hastayı ilişkilendirir, varsa diğer branşları kaldırır.
$hasta->branslar()->sync(1);

// Hasta id'si 1 olan branşa sahip mi?. Burada üsttekilerin aksine Collection kullanıyoruz
$hasta->branslar->contains(1); // true

Aşağıdaki sayfada Attaching / Detaching bölümüne bakabilirsiniz.
https://laravel.com/docs/5.7/eloquent-relationships

Çevrimdışı

#5 09.01.2019 14:27:56

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 217

Yanıt: Select Box Pivot ilişkisi

üstat çok teşekkür ederim deneyip dönecem inşallah ben 5.3 kullanıyorum bu fonksiyonlar 5.7 için gibi gözüküyor sorun olur mu

Çevrimdışı

#6 09.01.2019 15:14:43

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,427
Website

Yanıt: Select Box Pivot ilişkisi

Sorun olmaz, 5.3'de de var.

Çevrimdışı

#7 11.01.2019 09:15:47

GkyKrkc
Üye
Yer: Seyyah
Kayıtlı: 04.04.2017
Mesajlar: 217

Yanıt: Select Box Pivot ilişkisi

teşekkürler üstad harikasın denedim çalıştı, senin hakkını ödeyemeyiz mersine gelirsem özellikle ziyaret edecem inşallah smile selamlar

Çevrimdışı

Forum alt kısmı