marksihor / laravel-messaging
Simple laravel messaging
Installs: 2 238
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- laravel/framework: ~7.0
README
Simple messaging between users.
Installing
$ composer require marksihor/laravel-messaging -vvv
Migrations
This step is optional, if you want to customize the tables, you can publish the migration files:
$ php artisan vendor:publish --provider="MarksIhor\\LaravelMessaging\\MessagingServiceProvider" --tag=migrations
Usage
Use trait on User Model
MarksIhor\LaravelMessaging\Traits\Messageable
<?php namespace App\User; <...> use MarksIhor\LaravelMessaging\Traits\Messageable; class User extends Authenticatable { <...> use Messageable; <...> }
API
$user()->chats; // get all chats available for given user (with last message) $user()->chatsUnread; // get all unread chats $user()->chatsRead; // get all read chats $user()->chat(1); // get one chat with all messages $user()->sendMessageToChat(1, ['text' => 'message to chat']); // send message to specified chat (if user is in the chat) $user()->sendMessageToUser($recipient, ['text' => 'message to user', 'link' => 'https://some.link']); // send message to specified recipient
If You need manually to change "read" status, You can do the following:
use MarksIhor\LaravelMessaging\Services\MessagingService; <...> MessagingService::markReadForUser($chatId, $userId, $type === 'read' ? 1 : 0) <...>
License
MIT