Получение сообщения об ошибке на моем слушателе Laravel - PullRequest
0 голосов
/ 22 января 2019

Это ошибка =>

"message": "Ошибка типа: Аргумент 1 передан App \ Listeners \ SlackUserDropListener :: handle () должен быть экземпляром App \ Listeners \ App \ Events \ UserDropEvent, экземпляр Приложение \ События \ 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 голосов
/ 22 января 2019

Итак, из-за этой строки:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...