jm-inc/laravel-viewable

A simple Laravel 8 package to count views for models.

0.1 2021-07-16 10:37 UTC

This package is auto-updated.

Last update: 2024-04-16 18:10:38 UTC


README

Latest Stable Version GitHub license GitHub Tests Action Status Total Downloads

A simple Laravel 8 package to count views for models.

Installation

composer require jm-inc/laravel-viewable
php artisan migrate
php artisan vendor:publish --tag=viewable-config # publish the configuration (optional)

Setup

  1. Add this trait JM\Viewable\InteractsWithViews to the model you want to count views for.
  2. In your show controller method, use $model->viewed() to count a view.
  3. If the primary key of your model is not id set $viewable_id = 'primary-key in your model.

Example

Your model should look like this:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use JM\Viewable\InteractsWithViews;

class Post extends Model
{
    use HasFactory, InteractsWithViews;
}

Your show route method should look like this:

<?php

namespace App\Http\Controllers;

use App\Models\Post;

class PostController extends Controller
{
    public function show(Post $post)
    {
        // ...
        $post->viewed();
        // ...
    }
}