这是错误=>
“消息”:“类型错误:参数1传递给 App \ Listeners \ SlackUserDropListener :: handle()必须是 App \ Listeners \ App \ Events \ UserDropEvent,实例 给定App \ Events \ UserDropEvent“
我的代码如下:
namespace App\Listeners;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use GuzzleHttp\Client;
use App\Models\User;
use App\Models\UsersPermission;
use App\Models\UsersDrop;
use App\Models\Trace;
class SlackUserDropListener {
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param \App\Events\UserDropEvent $event
* @return void
*/
public function handle(App\Events\UserDropEvent $event) {
$user = $event->user;
$text = ">*Qualified lead has been dropped by agent*\n";
$text .= ">Client Name: ".$user->first_name." ".$user->last_name."\n";
$text .= ">Assigned Agent: ".$event->agent_name."\n";
$text .= ">Drop Reason: ".$event->drop_reason."\n";
$text .= ">Client BO Profile: https://***.com/users/edit/".$user->id."\n";
try{
$client = new Client;
$slack_channel = config('slack.webhookConsultants');
if(\App::environment() != "production") $slack_channel =
config('slack.webhookTest');
$client->request('POST', $slack_channel, ['json' => [
"text" => $text,
]]);
}catch(\Exception $e) {}
return "SlackUserDrop OK";
}
}
答案 0 :(得分:1)
因此,由于这一行:
namespace App\Listeners;
假定此文件中的所有调用都在该命名空间中。
因此,此位:
App\Events\UserDropEvent $event
被解释为:
App\Listeners\App\Events\UserDropEvent $event
您可以使用\
作为开头,以告诉PHP从命名空间根目录开始:
\App\Events\UserDropEvent $event
或者,您可以将其放在文件的顶部(以及其他use
声明):
use App\Events\UserDropEvent;
并在您的函数中执行此操作:
UserDropEvent $event