Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 4 » Хранение JSON строк в БД. Обсуждение » 28.10.2014 14:10:00

legolas4444
Ответов: 4

Как вы думаете это номальная практика хранить некоторые данные в БД (Mysql) в виде JSON строк? Вот например: У нас есть 1000 постов которые имеют фотки (10 штук к каждому) и например комментарии. И нам нужно выводить в цикле посты (штук 20) в таком формате: Пост с фотками и последними 3-мя комментариями. Например как выводятся посты на стене ВК. Можно ли в таблице с постами сделать 2 дополнительных ячейки (photos и comments) и в них хранить данные в виде JSON строк. Там для фоток JSON строка и такойже для 3-х последних комментариев. Ну а при изменении или добавлении фотки или коммента например обновлять эти поля?
Как мне кажется это сильно снизит нагрузку на БД, вы как думаете?

#2 Re: Laravel 4 » Комментарии к записи » 28.10.2014 12:36:30

C NULL-ом разобрался. Но тут дело в том, что вот этот ->limit(3) он достает последние 3 комментария ко всем записям, а мне нужно что бы к каждой из них было. Так получается, что у меня 10 постов и должно достаться например 30 комментариев. По 3 для каждого. А так он для 10-постов достает всего 3.

#3 Re: Laravel 4 » Комментарии к записи » 28.10.2014 11:26:40

Не. Что-то NULL возвращает.

В модели с комментариями

public function commentuser()
    {
        return $this->belongsTo('User');
    }

И когда розпаковываю переменную, то : commentuser => null

#4 Re: Laravel 4 » Комментарии к записи » 27.10.2014 23:35:33

Да да!! То что нужно)
Эм.. А еще вопрос, а если в таблице с комментариями там есть поле user_id и мне нужно достать еще и фотку и имя коментировавшего? Это в модели комментариев сделать belongsTo("user") ?

#5 Re: Laravel 4 » Комментарии к записи » 27.10.2014 17:15:54

Что бы не делать в цикле запрос для получения комментариев

#6 Re: Laravel 4 » Комментарии к записи » 27.10.2014 17:14:38

О "ORDER BY created_at DESC LIMIT 3" я в курсе. Меня интересует реализация что бы одним запросом (или несколькими) в итоге вернуть массив типа
array (
      array ("title" => "Статья","author" => "Автор","comments" => "массив с комментариями")
)

#7 Laravel 4 » Комментарии к записи » 27.10.2014 16:18:32

legolas4444
Ответов: 9

Всем привет! Не подскажите как грамотно организовать выборку типа: Есть список новостей и к каждой новости нужно достать по 3 последних комментария?
Что бы совсем понятней было, то аналогично тому, как это реализовано в ВК на стене. Тоесть - пост + 3 последних коммента.

Подвал раздела