我正在学习让 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');
}
}