Ошибка Gravatar: Пожалуйста, укажите правильный адрес электронной почты - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь использовать граватар в своем приложении.

У меня есть коллекция сотрудников. Не у всех есть фотография, поэтому я проверяю, передал ли avatar_type === gravatar действительный URL-адрес электронной почты, если таковой существует, поэтому я делаю все oop:

foreach ($employees as $employee) {
  if($employee->avatar_type === 'gravatar') { 
      $employee->avatar_location = gravatar()->get($employee->email, ['size'=>80]);
   }
}

Первый элемент коллекции thet не имеет фото и нуждается в граватаре выглядит следующим образом:

App\Models\Employee\Employee {#2898 ▼
      ...
      #attributes: array:14 [▼
        "firstname" => "Mary"
        "lastname" => "Brown"
        "email" => "mariabrown@yahoo.com"
        "avatar_location" => null
        "avatar_type" => "gravatar" // <- Here is the flag
      ]

Однако, даже если адрес электронной почты действителен ("email" => "mariabrown@yahoo.com"), я получаю следующую ошибку:

Creativeorange \ Gravatar \ Exceptions \ InvalidEmailException
Пожалуйста, укажите действительный адрес электронной почты

Я даже сделал тест и "dd" электронная почта внутри l oop и электронная почта там. Вот так:

foreach ($employees as $employee) { 

 dd($employee->email)  //<- The email is here

  if($employee->avatar_type === 'gravatar') { 
      $employee->avatar_location = gravatar()->get($employee->email, ['size'=>80]);
   }
}

Что мне здесь не хватает. Почему неправильный адрес электронной почты?

Я использую Laravel 6.13

Пакет gravatar загружен, установлен и работает в других местах приложения (на странице профиля пользователя).

1 Ответ

0 голосов
/ 27 февраля 2020

Вам необходимо продезинфицировать все входные данные, прежде чем продолжить. В laravel мы можем написать простое промежуточное ПО, которое выполняет эту задачу на лету. Вот статья, которая объясняет ясно. проверить эту среднюю статью Надеюсь, это поможет.

...