Laravel5,我喜欢将 Event::listen() 放在一个单独的文件中,但是 Event facade 是未知的

Laravel5, I like to place Event::listen() in a separate file, but the Event facade was unknown

我想在一个单独的文件中有一组 Event::listen(),这是我目前所做的。

bootstrap/autoload.php

...
require __DIR__.'/../bootstrap/listeners.php';

bootstrap/listeners.php

<?php

use \Event;

Event::listen('illuminate.query', function($query) {
    dd($query);
});

错误是class找不到事件

满足我的要求的正确方法是什么?我不确定创建一个新的 .php 文件并从 bootstrap/autoload 要求它。php 是否是满足此要求的正确方法。

请帮忙。 谢谢

在你的情况下,Facades 在引导程序中不可用,因为 IOC Laravel 的容器此时尚未创建,因此 Facades 尚未初始化。

在 L5 中,EventListeners 必须在 EventServiceProvider 的引导中注册 (app/providers)。

http://laravel.com/docs/5.0/events