0

Homestead で Lumen をインストールしました。Events を実装しようとしています。

ドキュメントでは、それは言う

.. bootstrap/app.php ファイルの $app->withFacades() 呼び出しのコメントを外します。

イベントをサブスクライブするには、Event::listen メソッドを使用できます。

ドキュメントからサンプルコードをコピーして貼り付けると、次のエラーが発生します

Fatal error: Class 'Event' not found in /home/vagrant/project/...

これが機能しない理由について、Lumen のドキュメントには何も見つかりませんでした。

Laravel 5のチュートリアルで、コマンドを使用して作成されたイベント に、That could be the missing Event class I need, but how should one get it in a Lumen project if that artisan command does not exist? のartisan make:eventような use ステートメントがあることに気付きました。use App\Events\Event;

4

4 に答える 4

0

App\Events\Event;問題は、Laravel には存在するが Lumen の足場には存在しないクラスが欠落しているようです。

欠落しているクラスは、単に抽象的な空のクラスです。

<?php

namespace App\Events;

abstract class Event
{
    //
}

Lumen docs にはあいまいな例があります。将来これが修正されることを願っています。

<?php

namespace App\Events;

use App\Podcast;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;

class PodcastWasPurchased extends Event
{
    use SerializesModels;

    public $podcast;

    /**
     * Create a new event instance.
     *
     * @param  Podcast  $podcast
     * @return void
     */
    public function __construct(Podcast $podcast)
    {
        $this->podcast = $podcast;
    }
}
于 2015-07-29T14:44:26.010 に答える
0

これは次のことによると思います:

$app->withFacades();

クラスエイリアスとしてイベントファサードを含まないbootstrap/app.php。

追加:

class_alias('Illuminate\Support\Facades\Event', 'Event');

Laravel\Lumen\Application.php::withFacades() に問題を修正しますが、これはコア Lumen ファイルであるため、推奨される修正ではありません。

于 2015-05-12T16:22:27.990 に答える
0

ばかげているように聞こえるかもしれませんがuse Event;、一番上に指定しましたか?

コメントを解除$app->withFacades();するとエイリアスが作成されますが、インポートする必要があります。

于 2015-05-29T09:57:44.863 に答える