web-dev-qa-db-ja.com

未定義のメソッドIlluminate \ Notifications \ Notification :: send()の呼び出し

プロジェクトで通知システムを作成しようとしています。
これらは私が行ったステップです:

1-php職人通知:テーブル
2-php職人の移行
3-php職人make:notification AddPost

私のAddPost.phpファイル私はこのコードを書きました:

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;

class AddPost extends Notification
{
    use Queueable;


    protected $post;
    public function __construct(Post $post)
    {
        $this->post=$post;
    }


    public function via($notifiable)
    {
        return ['database'];
    }




    public function toArray($notifiable)
    {
        return [
            'data'=>'We have a new notification '.$this->post->title ."Added By" .auth()->user()->name
        ];
    }
}

私のコントローラーでは、データをテーブルに保存しようとしていますが、すべてが完璧でした。
これは私のコントローラーのコードです:

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
use App\User;
//use App\Notifications\Compose;
use Illuminate\Notifications\Notification;
use DB;
use Route;

class PostNot extends Controller
{
    public function index(){
       $posts =DB::table('_notification')->get();
       $users =DB::table('users')->get();
       return view('pages.chat',compact('posts','users'));


    }
public function create(){

        return view('pages.chat');

    }


public function store(Request $request){
    $post=new Post();
   //dd($request->all());
   $post->title=$request->title;
   $post->description=$request->description;
   $post->view=0;

   if ($post->save())
   {  
    $user=User::all();
    Notification::send($user,new AddPost($post));
   }

   return  redirect()->route('chat');  
    }

}

このコードを変更するまで、すべてが順調でした。

$post->save();

これに:

if ($post->save())
       {  
        $user=User::all();
        Notification::send($user,new AddPost($post));

       }

次のようなエラーが表示され始めました。

PostNot.phpの41行目のFatalThrowableError:未定義のメソッドIlluminate\Notifications\Notification :: send()の呼び出し

どうすればこれを修正できますか?
ありがとう。

6
Mohamed Wannous

の代わりに:

use Illuminate\Notifications\Notification;

あなたは使用する必要があります

use Notification;

現在、Illuminate\Notifications\Notificationを使用しており、sendメソッドがなく、Notificationファサードはsendメソッドを持つIlluminate\Notifications\ChannelManagerを使用しています。

20