プロジェクトで通知システムを作成しようとしています。
これらは私が行ったステップです:
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()の呼び出し
どうすればこれを修正できますか?
ありがとう。
の代わりに:
use Illuminate\Notifications\Notification;
あなたは使用する必要があります
use Notification;
現在、Illuminate\Notifications\Notification
を使用しており、send
メソッドがなく、Notification
ファサードはsend
メソッドを持つIlluminate\Notifications\ChannelManager
を使用しています。