Счётчик просмотров
У нас есть запись и мы хотим считать количество её просмотров на сайте. Значит нам нужно сделать для неё счётчик просмотров. Делается это довольно просто.
Сначала для модели нужно добавить поле которое будет этим самым количеством просмотров. Назовём его count_views
. Чтобы это поле было в таблице базы данных, в файле миграции прописываем:
$table->integer('count_views')->index()->default(0);
Теперь в файле модели внутри класса добавляем метод increaseViewCount
, который при вызове будет добавлять +1 просмотр нашему счётчику:
public function increaseViewCount() {
$this->timestamps = false;
$this->increment('count_views');
$this->timestamps = true;
}
Наш счётчик полностью готов к применению.
Добавляем просмотр
Добавлять +1 просмотр к счётчику нам нужно тогда, когда выводится страница. Как правило это делается в компоненте выводящем экземпляр модели внутри функции onRun
.
Вот такой код:
$item = Item::whereSlug($this->property('slug'))->first();
if (empty($item)) {
return $this->controller->run('404');
}
$item->increaseViewCount();
- В первой строке кода мы делаем запрос записи из базы данных.
- Дальше идёт блок проверки на то есть ли запрашиваемая запись. В случае если её нет (был указан несуществующий slug), контроллеру возвращается 404 ответ и дальнейшее выполнение кода прерывается.
- В случае успешной проверки наличия записи, добавляем +1 просмотр, вызвав у модели метод
increaseViewCount
.
Вывод количества просмотров в админке
Ну и на последок выводим в админке в списке записей наш столбец с количеством просмотров:
count_views:
label: Просмотров
sortable: true
clickable: false
cssClass: text-center
*** Войдите чтобы писать комментарии.