Laravel 消息通知的使用

https://learnku.com/docs/laravel/5.8/notifications/3921

  • 创建通知
    >php artisan make:notification SendMail
    App\Notifications下面找到刚才创建的通知类打开并编辑.
    //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 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);
        }
    }

End

你可能感兴趣的:(Laravel 消息通知的使用)