【发布时间】:2020-03-30 10:19:45
【问题描述】:
我正在尝试制作通知系统。 我创建了事件:
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class DealApproved implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $username;
public $message;
public function __construct($username)
{
$this->username = $username;
$this->message = "{$username} approved your deal#50. Please take an action!";
}
public function broadcastOn()
{
return ['notification-channel-4'];
}
}
我的路线:
Route::get('/notify', 'NotificationController@approve_deal');
我的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Pusher\Pusher;
use Events\DealApproved;
class NotificationController extends Controller
{
public function approve_deal()
{
event(new App\Events\DealApproved('Someone'));
return "Event has been sent!";
}
}
当我使用这条路线时:
Route::get('notify', function () {
event(new App\Events\DealApproved('Someone'));
return "Event has been sent!";
});
一切正常,但是当我将路由更改为控制器时出现错误:
找不到类“App\Http\Controllers\App\Events\DealApproved”
使用事件\DealApproved;没用,求帮助
【问题讨论】:
-
您需要花几分钟时间了解 PHP 中命名空间的工作原理...这可能会有所帮助 mattstauffer.co/blog/a-brief-introduction-to-php-namespacing
标签: php laravel laravel-5 namespaces laravel-5.8