Laravel Проблема с обновлением контейнера - PullRequest
0 голосов
/ 05 августа 2020

Я обновляюсь с 5,8 до 7, и у меня есть функция, которая позволяет извлекать настройки smtp для почты из базы данных. Это из этого руководства https://laravel-news.com/allowing-users-to-send-email-with-their-own-smtp-settings-in-laravel

     $this->app->bind('user.mailer', function ($app, $parameters) {
      $smtp_host = Arr::get($parameters, 'smtp_host');
      $smtp_port = Arr::get($parameters, 'smtp_port');
      $smtp_username = Arr::get($parameters, 'smtp_username');
      $smtp_password = Arr::get($parameters, 'smtp_password');
      $smtp_encryption = Arr::get($parameters, 'smtp_encryption');

      $from_email = Arr::get($parameters, 'from_email');
      $from_name = Arr::get($parameters, 'from_name');

      $from_email = $parameters['from_email'];
      $from_name = $parameters['from_name'];

      $transport = new Swift_SmtpTransport($smtp_host, $smtp_port);
      $transport->setUsername($smtp_username);
      $transport->setPassword($smtp_password);
      $transport->setEncryption($smtp_encryption);

      $swift_mailer = new Swift_Mailer($transport);

      $mailer = new Mailer($app->get('view'), $swift_mailer, $app->get('events'));
      $mailer->alwaysFrom($from_email, $from_name);
      $mailer->alwaysReplyTo($from_email, $from_name);

      return $mailer;
     });

Это работало в предыдущей версии, однако в Laravel 7 я получаю сообщение об ошибке

Аргумент 1 пройден to Illuminate \ Mail \ Mailer :: __ construct () должен иметь тип string, заданный объект

Здесь не работает $ app-> get ('view')

Я просмотрел руководства по обновлению, но я изо всех сил пытаюсь исправить это.

1 Ответ

0 голосов
/ 05 августа 2020

Я сравнил __construct в обеих версиях, и вы можете увидеть разницу.

5.8 конструкция

в строке 86 void __construct (Factory $ views, Swift_Mailer $ swift , Dispatcher $ events = null)

7.x конструкция

в строке 103 void __construct (string $ name, Factory $ views, Swift_Mailer $ swift, Dispatcher $ events = null)

Вам необходимо обновить свой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...