chelkaz
@chelkaz

Комментарии к чему угодно. Есть логика готового велосипеда?

Делаю сервисы на сайтах. Например объявления, вопросы и ответы и прочее. Везде нужны комментарии.
Делал для каждого раздела свои. Своя таблица. Своя модель и прочее. Но потом решил подумать и спросить. Не лучше делать так:
Создать единую таблицу и единую модель. Так как правила комментариев везде едино. Просто текст и все.
В таблице сделать поле типа id раздела. То есть хранить все комменты в одной таблице, разделяя их по id раздела.
Как вы считаете?
  • Вопрос задан
  • 414 просмотров
Решения вопроса 3
PavelK
@PavelK
Вообщето так и делают =)
Ответ написан
DieZz
@DieZz
Так будет правильнее делать, как и описали. Для этого в ларавел предусмотрены полиморфные связи. Вот ссылка на документацию
Ответ написан
Комментировать
@funtik52
Только не забудь таблицу справочник сделать. Так при программирование будет легче обращаться. То есть чтобы в базе была таблица с названиями категорий и их "id". Вообще очень логично.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
65536
@65536
одна таблица. остальное вешать через морф связь
Ответ написан
Комментировать
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
Создаем таблицу:

id (int), user_id (int), comment (text), commentable_type (string, index), commentable_id (int, index)


И модель под нее:
class Comment extends Model
{
  protected $table = 'comments';

  public function commentable()
  {
      return $this->morphTo();
  }
}


Используем как полиморфную связь в нужной нам модели:
public function comments(){
      return $this->morphMany('App\Comment', 'commentable');
}


Вот и все. Все комментарии записи будут в аттрибуте comments, создавать комментарии можно обращаясь к comments(), редактировать/удалять точно так же.
Ответ написан
Комментировать
DJZT
@DJZT
Laravel - code for you
Полиморфисеские связи?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы