1、生成app\Notifications\NewUserFollowNotification.php
php artisan make:notification NewUserFollowNotification
设置
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class NewUserFollowNotification extends Notification
{
use Queueable;
public function __construct()
{
//
}
public function via($notifiable)
{
return ['database'];//通过数据库
}
public function toDatabase($notifiable){
return [
'name' => \Auth::guard('api')->user()->name //将登陆用户(粉丝)名字写入数据库,也可以写入其他信息
];
}
public function toArray($notifiable)
{
return [
//
];
}
}
2、关注后通知
$userToFollow->notify(new NewUserFollowNotification());//给明星(被关注的人)发送通知,此时消息信息存入数据库
3、获取通知
$user = \App\User::find(28)
$user->notifications
或者
app\Notifications\NewUserFollowNotification.php中
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class NotificationsController extends Controller
{
public function index(){
$user = \Auth::user();
return view('notifications.index',compact('user'));
}
}
resources\views\notifications\index.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
@foreach($user->notifications as $notification)
@include('notifications.'.snake_case(class_basename($notification->type)))
//动态获取 snake_case作用 myOwnFunction 转为 my_own_function
// class_basename作用 App\Notifications\NewUserFollowNotification 提取类名
// NewUserFollowNotification
@endforeach
</div>
</div>
</div>
</div>
</div>
@endsection
resources\views\notifications\new_user_follow_notification.blade.php
<li class="notifications">
<a href="">{{$notification->data['name']}}</a>
关注了你
</li>