如何修复 Laravel 在尝试广播新事件时抛出 FatalThrowableError

我正在学习让 Laravel 实时广播的教程,但在跟随几分钟后就卡住了。Laravel 向我抛出以下消息“传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须是数组类型,给定整数,在 /home/vagrant/code/vendor/laravel/framework/src/Illuminate 中调用/Database/Query/Grammars/Grammar.php 第 775 行“


我已经多次尝试重做本教程以确保我没有遗漏任何内容,但多次尝试后问题仍然相同。即使检查堆栈跟踪和文档也没有给我任何线索。


我已取消注释以下行config/app.php:


App\Providers\BroadcastServiceProvider::class,

我已将以下几行添加到App\Providers\EventServiceProvider:


use App\Events\RideCreated;

use App\Listeners\RideCreatedListener;

以及protected $listen = [同一个文件中的以下内容


    RideCreated::class => [

        RideCreatedListener::class,

    ],

这是用于测试的路由设置 ( web.php):


Route::get('/test', function(){

    event(new RideCreated());

    return "test";

});

这是它的RideCreated.php样子:


<?php


namespace App\Events;


use Illuminate\Broadcasting\Channel;

use Illuminate\Queue\SerializesModels;

use Illuminate\Foundation\Events\Dispatchable;

use Illuminate\Broadcasting\InteractsWithSockets;

use Illuminate\Contracts\Broadcasting\ShouldBroadcast;


class RideCreated implements ShouldBroadcast

{

    use Dispatchable, InteractsWithSockets, SerializesModels;


    /**

     * Create a new event instance.

     *

     * @return void

     */

    public function __construct()

    {

        //

    }


    /**

     * Get the channels the event should broadcast on.

     *

     * @return \Illuminate\Broadcasting\Channel|array

     */

    public function broadcastOn()

    {

        return new Channel('RideCreated');

    }

}


月关宝盒
浏览 219回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP