v2.5.2
Giriş yap

laravel ile mesajlaşma uygulamasında Conversation, Message ve User modeli arasında ki ilişkiler

rotaile
176 defa görüntülendi ve 1 kişi tarafından değerlendirildi

arkadaşlar bir sohbeti oluşturmak için oturumu açık olan
kullanıcı herhangi bir kullanıcıya tıkladığı zaman sender_id değeri olaran oturumu açık olan kullanıcıyı,
receiver_id değeri olarakta mesajın gönderileceği kullanıcı değerini tutuyorum conversations tablosunda.

buraya kadar herşey tamam ama conversation modelinde

bu ilişkide sütun adı olarak receiver_id değerini verdiğim için sohbeti oluşturan kişide sorun yok doğru bir şekilde görünüyor fakat karşıda ki kişide yani receiver kişisinde kendi bilgileri görünüyor.

bunu nasıl düzeltebilirim?

//conversation modelinde ki user ilişkisi

public function user()
{
    return $this->belongsTo(User::class, 'receiver_id', 'id');
}

sohbet oluşturduğum kısım
/* bu kısımda eğer sohbet varsa 
oluşturulmasın diye kontrol ediyorum yoksa
*/
$conversation = Conversation::whereIn('sender_id', [$sender_id, $receiver_id])
        ->whereIn('receiver_id', [$sender_id, $receiver_id])
        ->first();
        
if (!$conversation) {
// burada oluşturuyorum
    $conversation = Conversation::create([
        'receiver_id' => $receiver_id,
        'sender_id' => $sender_id,
    ]);
}

ilişkilerin tamamı
//Conversation modeli

public function messages()
{
    return $this->hasMany(Message::class);
}

public function user()
{
    return $this->belongsTo(User::class, 'receiver_id', 'id');
}

//Message modeli

public function conversation()
{
    return $this->belongsTo(Conversation::class);
}

public function user()
{
    return $this->belongsTo(User::class, 'sender_id', 'id');
}

Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!