<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
liran-co / laravel-notification-subscriptions example snippets
use Illuminate\Database\Eloquent\Model;
use LiranCo\NotificationSubscriptions\Traits\HasNotificationSubscriptions;
class User extends Model
{
use HasNotificationSubscriptions;
// ...
}
use App\Notifications\InvoicePaid;
$user->unsubscribe(InvoicePaid::class); //You can also pass a string, but this is the preferred method.
use App\Notifications\InvoicePaid;
$user->unsubscribe(InvoicePaid::class, 'mail');
use App\Notifications\InvoicePaid;
$user->notify(new InvoicePaid($invoice)); //This won't get sent.
namespace App\Notifications;
// ...
class InvoicePaid extends Notification
{
public function via($notifiable)
{
return ['mail', 'sms'];
}
public function getOptInSubscriptions()
{
return ['sms'];
}
}
use App\Notifications\InvoicePaid;
$user->subscribe(InvoicePaid::class);
use App\Notifications\InvoicePaid;
$user->subscribe(InvoicePaid::class, 'mail');
use App\Notifications\InvoicePaid;
$user->resetSubscriptions(InvoicePaid::class);
use App\Notifications\InvoicePaid;
$user->resetSubscriptions(InvoicePaid::class)->subscribe(InvoicePaid::class);
$user->notificationSubscriptions();
use App\Models\Organization;
use App\Notifications\InvoicePaid;
//...
$organization = Organization::find(1);
$user->unsubscribe(InvoicePaid::class, '*', $organization);
use App\Models\Organization;
use App\Notifications\InvoicePaid;
//...
$organization = Organization::find(1);
$user->unsubscribe(InvoicePaid::class, 'mail', $organization);
namespace App\Notifications;
// ...
class InvoicePaid extends Notification
{
public function __construct(Invoice $invoice)
{
$this->invoice = $invoice;
}
public function getSubscriptionModel($notifiable)
{
return $this->invoice->organization;
}
}
use App\Models\Organization;
use App\Notifications\InvoicePaid;
//...
$organization = Organization::find(1);
$user->resetSubscriptions(InvoicePaid::class, $organization);
use App\Models\Organization;
//...
$organization = Organization::find(1);
$user->notificationSubscriptions()->model($organization);
namespace App\Notifications;
// ...
class InvoicePaid extends Notification
{
public function __construct(Invoice $invoice, $ignore = false)
{
$this->ignoreSubscriptions = $ignore;
}
}
use App\Notifications\InvoicePaid;
$user->notify(new InvoicePaid($invoice, true)); //This will always get sent.
return [
'excluded_channels' => ['database'],
];
bash
php artisan migrate
bash
php artisan vendor:publish
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.