mosamy / seenable
Laravel package that handle the headache of the translation problem.
Requires
- php: >=8.1
This package is auto-updated.
Last update: 2025-04-25 05:12:36 UTC
README
Monitor to show if a record is seen and by whom
Installation
composer require mosamy/seenable
php artisan migrate
Usage
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Message extends Model
{
use \Mosamy\Seenable\Seenable;
}
To detect if a message was seen just check is_seen property
$message = Message::find(1);
echo $message->is_seen; //boolean
markAsSeen()
To mark a record as seen.
$message = Message::find(1);
$message->markAsSeen();
markAsUnseen()
To mark a record as unseen.
$message = Message::find(1);
$message->markAsUnseen();
views
Get a list of views by users that saw a record. If you plan to use this feature in a list don't forget to eager load this function by using with('views')
$message = Message::find(1);
$views = $message->views;
foreach($views as $view){
echo $views->seener;
}
seenBy()
Get records that have been seen by specific user type (Model class name).
$message = Message::seenBy(App\Models\Admin::class)->get();
// specifiy a user id
$message = Message::seenBy(App\Models\Admin::class, 1)->get();
seenByMe()
Get records that have been seen by logged in user.
$message = Message::seenByMe()->get();
haventSeenBy()
Get records that haven't been seen by specific user type (Model class name).
$message = Message::haventSeenBy(App\Models\Admin::class)->get();
// specifiy a user id
$message = Message::haventSeenBy(App\Models\Admin::class, 1)->get();
haventSeenByMe()
Get records that haven't been seen by logged in user.
$message = Message::haventSeenByMe()->get();
orderBySeen()
Order records by seen first.
$message = Message::orderBySeen()->get();
orderByUnseen()
Order records by unseen first.
$message = Message::orderByUnseen()->get();