在我的Laravel侦听器上获取实例错误

时间:2019-01-22 16:33:34

标签: php sql laravel listener

这是错误=>

  

“消息”:“类型错误:参数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";
     }
}

1 个答案:

答案 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
相关问题