laravel ile mesajlaşma uygulamasında Conversation, Message ve User modeli arasında ki ilişkiler
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');
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!