1 创建通知表
php artisan notifications:table
php artisan migrate
2 代码
2.1 \app\Notifications\NewUserFollowNotinfication.php
php artisan make:notification NewUserFollowNotinfication
use Illuminate\Support\Facades\Auth;
public function via($notifiable) { // return [\'mail\']; //邮件通知 return [\'database\']; //站内信 } public function toDatabase($notifiable) { return [ \'name\'=> Auth::guard(\'api\')->user()->name, ]; }
2.2 \app\Http\Controllers\Api\FollowersController.php
use App\Notifications\NewUserFollowNotinfication;
public function follow() { $userToFollow = $this->user->byId(request(\'user\')); $followed = Auth::guard(\'api\')->user()->followThisUser($userToFollow->id); if (count($followed[\'attached\']) > 0 ){ $userToFollow->increment(\'followers_count\'); $userToFollow->notify(new NewUserFollowNotinfication()); return response()->json([\'followed\'=>true]); } $userToFollow->decrement(\'followers_count\'); return response()->json([\'followed\'=>false]); }
notifications表里就会有新增一行
3 显示代码
3.1 \app\Http\Controllers\NotificationsController.php
php artisan make:controller NotificationsController
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class NotificationsController extends Controller { // public function index() { $user = Auth::user(); return view(\'notifications.index\',compact(\'user\')); } }
3.2 \routes\web.php
Route::get(\'notifications\',\'NotificationsController@index\');
3.3 \resources\views\notifications\index.blade.php
@extends(\'layouts.app\') @section(\'content\') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">消息通知</div> <div class="card-body"> @foreach($user->notifications as $notification) @include(\'notifications.\'.snake_case(class_basename($notification->type))) @endforeach </div> </div> </div> </div> </div> @endsection
3.4 \resources\views\notifications\new_user_follow_notinfication.blade.php
<li class="notifications"> <a href="{{ $notification->data[\'name\'] }}"> {{ $notification->data[\'name\'] }} </a> 关注了您哦! </li>