Laravelメッセージシステムの使用方法
1625 ワード
通知の作成
AppNotificationsの下に作成した通知クラスを見つけて開き、編集します.//SendMail.php
viaメソッドは通知がどのルートで送信かを指定し、laravelにはmail、database、'broadcast'、nexmo、slackここではdatabaseがデータベースを通じてメッセージを送信することを指定します.どのルートでメッセージを送信かは、このクラスの下にToXXXのメソッドが必要です.例えば、databaseチャネルにはToDatabaseメソッドが必要です.mailにはToMail対応が必要です.
新規メソッド//SendMail.php
データテーブルの作成
データベースにnotificationsテーブルが表示され、メッセージ通知を格納します.メッセージ//XxxController.phpをコントローラに送信します.use Notificationsテーブルはコントローラに表示されます.
ブラウザでメソッドにアクセスすると、データテーブルnotificationsのdataフィールドにさっき送信した内容が表示されます.
メッセージの表示
>php artisan make:notification SendMail
AppNotificationsの下に作成した通知クラスを見つけて開き、編集します.//SendMail.php
public function via($notifiable)
{
return ['database'];
}
viaメソッドは通知がどのルートで送信かを指定し、laravelにはmail、database、'broadcast'、nexmo、slackここではdatabaseがデータベースを通じてメッセージを送信することを指定します.どのルートでメッセージを送信かは、このクラスの下にToXXXのメソッドが必要です.例えば、databaseチャネルにはToDatabaseメソッドが必要です.mailにはToMail対応が必要です.
新規メソッド//SendMail.php
public function toDatabase($notifiable)
{
return [
'uid'=>99,
'money'=>'$100',
'content'=>$this->content
];
}
データテーブルの作成
>php artisan notifications:table
>php artisan migrate
データベースにnotificationsテーブルが表示され、メッセージ通知を格納します.メッセージ//XxxController.phpをコントローラに送信します.use Notificationsテーブルはコントローラに表示されます.
use Illuminate\Notifications\Notifiable;
class TestController extends Controller
{
use Notifiable;
//
public function test()
{
//$user ,
// , .
$user = User::find(1);
$user->notify(new SendMail(' '));
}
ブラウザでメソッドにアクセスすると、データテーブルnotificationsのdataフィールドにさっき送信した内容が表示されます.
メッセージの表示
// , , .
public function show()
{
$user = User::find(1);
foreach ($user->Notifications as $notification) {
dump($notification->data);
}
}