0

这是我使用时的事件类

class EventServiceProvider extends ServiceProvider
    {
        /**
         * The event listener mappings for the application.
         *
         * @var array
         */
        protected $listen = [
            Registered::class    => [
                SendEmailVerificationNotification::class,
            ],
            CategoryEvent::class => [
                CategoryCreatedListener::class,
            ]
        ];

当我运行以下命令时

php artisan event:generate

如果我将命名空间放在事件和侦听器之前,它会在服务提供者目录中创建事件和侦听器

App\Events\CategoryEvent::class

它仍然在 Service Provider Directory 中创建App\Event 和 App\Event如何在 App Namespace 中创建 Event 和 Listener Directory。

在此处输入图像描述

4

2 回答 2

1

听起来像一个命名空间问题。您可能需要确保这些类具有别名:

use App\Events\Registered;
use App\Listeners\SendEmailVerificationNotification;
...

否则Registered::class将是App\Providers\Registered

于 2020-08-10T09:09:20.543 回答
0

Laravel 似乎没有对事件生成的自定义路径支持。所以你最好的选择可能只是在你想要的目录中手动创建它,然后自己将它插入到 EventServiceProvider 中。这是一些手工工作,但不会超过一分钟。

类似的问题已经解决了:如何在子目录级别使用工匠命令创建事件/侦听器?

于 2020-08-10T08:34:49.517 回答