Рейтинг:0

Gracefully handle URL/URI/Link exceptions when using Link field formatter?

флаг in

Occasionally I am encountering an error along these lines:

The website encountered an unexpected error. Please try again later.InvalidArgumentException: The URI 'XYZ' is invalid. You must use a valid URI scheme. in Drupal\Core\Url::fromUri() (line 290 of core/lib/Drupal/Core/Url.php).

We are migrating data frequently and one thing that can happen is link field URIs can come in like that. The core LinkFormatter class does not seem to handle exceptions, although there is this issue:

https://www.drupal.org/project/drupal/issues/2745179

If this patch does not apply/work, what other resolution is there? Should I point the LinkFormatter class definition to a custom class that catches exceptions?

Jaypan avatar
флаг de
Я бы добавил проверку, чтобы убедиться, что URL-адреса действительны перед их импортом. Но если вы хотите получить правильный ответ, вам нужно будет предоставить гораздо больше деталей, так как их недостаточно, чтобы дать какой-либо содержательный ответ.
Рейтинг:1
флаг in

Оказывается, патч для этого основного класса LinkFormatter (#50) в настоящее время работает с Drupal 9.2.6.

Есть несколько способов, которыми эти данные могут попасть в приложение вне входа пользователя в формы Drupal, где мы не всегда можем проверить правильность URI ссылки или то, что предназначено из внешних источников API. Этот патч перехватывает исключения и позволяет сайту нормально функционировать для публики.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.