Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день. Возник вопрос как грамотнее организовать счетчик просмотров темы на уровне бд. Сначала были идеи использовать поле
$table->integer('counter', true);
но как я понял, почитав про mysql, он не для этих целей, остается банальный вариант
$post->increment('counter');
Или есть другие варианты?
Изменено TuX560 (30.07.2015 12:59:38)
Не в сети
Я сделал это так -
Controller
$viewsUpdate = \App\Content::updateViews($id);
Model
public function scopeUpdateViews($query, $id) {
return $query->whereId($id)->increment('views', 1);;
}
Не в сети
Ну да, а учитывая что обновляем мы счетчик просмотров при отображении/получении темы, думаю логично будет поместить инкримент перед передачей поста во view
Не в сети
1. умные люди на mysql давно не работают ввиду его ущербности.
2. сделав триггер на обновление либо чтение строки с функцией автоматического обновления вы бы решили эту проблему на уровне бд, а не рнр
3. читайте документации о командах/job'ах и другой сервисной составляющей лары. это поможет автоматизировать подобные вещи на уровне всего фреймворка.
4. работа посредством обращений к бд не через орм осложняет работу и в принципе создаёт неудобства в будущем.
Не в сети
Благодарю, читал про достоинства Postgree и думаю позже им заняться, но пока это просто изучение самой Laravel и ее функционала, до экспериментов с БД пока не дошел, поэтому используется MySQL. За советы огромное спасибо, думал же что такое должно быть возможно на уровне БД но не знал что именно искать.
Не в сети
Страницы 1