Sr,我尝试在下面的例子中使用laravel 5,但它不起作用。
namespace App\Events;
use Illuminate\Queue\SerializesModels;
class DidSomething extends Event {
use SerializesModels;
public function __construct() {
return;
}
}
和处理
命名空间App \ Handlers \ Events;
使用App \ Events \ DidSomething;
class DoSomething {
public function __construct() {
}
public function handle(DidSomething $event) {
dd($event);
}
}
和我的EventServiceProvider.php
namespace App\Providers;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider {
/**
* The event handler mappings for the application.
*
* @var array
*/
protected $listen = [
App\Events\DidSomething::class=>[
App\Handlers\Events\DoSomething::class
]
];
/**
* Register any other events for your application.
*
* @param \Illuminate\Contracts\Events\Dispatcher $events
* @return void
*/
public function boot(DispatcherContract $events)
{
parent::boot($events);
//
}
}
在我的控制器中,我使用\ Event :: fire(new DidSomething());
我曾尝试使用命令行
php artisan event:generate
php artisan optimize
composer update
答案 0 :(得分:0)
生成活动
art make:event LogMe
为该事件生成事件处理程序
艺术处理程序:事件LogMe --event =“LogMe”
确保在活动服务provider (app/Providers/EventServiceProvider.php)
//
protected $listen = [
'event.name' => [
'EventListener',
],
\Xxx\Events\LogMe::class => [
\Xxx\Handlers\Events\LogMe::class,
],
];
Event::fire(New LogMe());
- 或者 - 您可以使用事件助手event(New LogMe());
或者,您可以通过在服务提供程序中注册事件然后运行此命令来生成事件
art event:generate
<<这将自动为您添加两个类
转到活动服务证明者并在启动功能内写下您的活动及其行动(不推荐)
Event::listen('XXX\Events\DoSomethingElse', function($event)
{
dd('handle me :)');
});