Giriş yapmadınız.

#1 30.05.2019 06:57:33

potti
Üye
Kayıtlı: 24.09.2018
Mesajlar: 74

database'den cekilen konular icin user like opsiyonu

oncelikle baslikta nasil ozetleyecegimi bilemedim, ama
daha genis sekilde aciklayacak olursam. database'den article/konu fetch ediyorum.
burada user begendigi article'a like veriyor. burada like verilen konularin id'sini user table'da, ornek: like column'unda json/array olarak mi tutuyoruz?
(-ki sadece like verdigi konulari profil sayfasina fetch edip gosterebilelim.)

ikinci sorum ise ornegin user bir konuya like verdi. orada sadece o user icin like isaretinin rengini kalici nasil degistirebiliriz? ya da tekrar
tikladiginda kalici olarak geri alabiliriz...

bu iki konuda deneyimi olup nasil bir yol izlemem gerektigine dair yardimci olabilecek birisi var mi? 
bu arada laravel'i backend/ vue.js'i frontend olarak kullaniyorum.

Çevrimdışı

#2 30.05.2019 08:59:41

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

Yanıt: database'den cekilen konular icin user like opsiyonu

İlk sorunun cevabı
users_likes şeklinde bir ortanca tablo oluşturun. Bunun içerisinde user_id, article_id olsun. Kullanıcının ne zaman beğendiğini de tutmak isterseniz created_at gibi bir timestamp alanı da ekleyebilirsiniz. Kullanıcı bir konuyu beğendiğinde bu tabloya işletin.
Daha sonra kullanıcı kaç konu beğenmiş, hangi konuları beğenmiş, en çok beğenilen konular hangisi, en çok konu beğenen kullanıcı kim... gibi bilgilere ulaşabilirsiniz.
Bu tarz bir veriyi users ya da articles tablosunda tutmazdım.

İkinci sorunun cevabı
İlk sorunun cevabı gibi yaparsanız bu sorunun cevabı da otomatik oluşuyor. SELECT * FROM users_likes WHERE user_id = ? AND article_id = ? şeklinde bir sorgu kayıt dönderirse demek ki kullanıcı bu konuyu daha önce beğenmiş. created_at sütunu varsa da o tarihte beğenmiş.
Tekrar tıklayıp beğnemeyi geri alırsa bu kaydı sildireceksiniz.

Bu işlemi Eloquent ile yapmak isterseniz many-to-many kullanırsınız. İçerisindeki attach ve syncWithoutDetaching yöntemlerinden faydalanırsınız.
https://laravel.com/docs/5.8/eloquent-r … ny-to-many

Çevrimdışı

#3 31.05.2019 18:48:26

potti
Üye
Kayıtlı: 24.09.2018
Mesajlar: 74

Yanıt: database'den cekilen konular icin user like opsiyonu

dediginiz gibi ayri bir like tablosu tablo olusturup user ile birlikte article tablosuna bagladim.
bu sekilde kontrol etmek daha kolay oldu. isaret ettiginiz basliklar icin ayrica tesekkurler.

Çevrimdışı

Forum alt kısmı