当我发帖并点击我的活动时,我收到此错误
调用未定义的方法 App\Events\UpdateProductCount::__invoke()
这是我的代码
public function create()
{
$product = Product::create([
'name' => request('name'),
'description' => request('description'),
]);
dispatch(new UpdateProductCount($product));
}
Run Code Online (Sandbox Code Playgroud)
这就是我在 UpdateProductCount 事件中的内容
<?php
namespace App\Events;
use App\Models\Product;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class UpdateProductCount
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public Product $product;
public function __construct(Product $product)
{
$this->product = $product;
}
public function broadcastOn()
{
return new PrivateChannel('product-count-update'.$this->product);
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我的 UpdateProductCountListener 中的内容
<?php
namespace App\Listeners;
use App\Events\UpdateProductCount;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
class UpdateProductCountListener
{
public function __construct()
{
}
public function handle(UpdateProductCount $event)
{
dd($event);
}
}
Run Code Online (Sandbox Code Playgroud)
Nie*_*nna 17
在查看我的堆栈跟踪(如@miken32)后表明它正在抱怨这一行
dispatch(new UpdateProductCount($product));
Run Code Online (Sandbox Code Playgroud)
所以我尝试更改dispatch为event
// dispatch(new UpdateProductCount($product));
event(new UpdateProductCount($product));
Run Code Online (Sandbox Code Playgroud)
这奏效了。
Sup*_*nda 11
我的问题是导入了错误的Dispatchable特征。
错误的:
use Illuminate\Foundation\Bus\Dispatchable;
Run Code Online (Sandbox Code Playgroud)
正确的:
use Illuminate\Foundation\Events\Dispatchable;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9255 次 |
| 最近记录: |