Рейтинг:0

Пользовательский объект с динамическими путями

флаг eg

Я создаю новую сущность и хочу, чтобы она была в профиле пользователя.

Путь должен быть "/user/{user-id}/documents/X":

/*
 * ссылки = {
 * "канонический" = "/пользователь/{пользователь}/документы/{документ}",
 * "добавить-форма" = "/пользователь/{пользователь}/документы/добавить",
 * "edit-form" = "/user/{user}/documents/{document}/edit",
 * "delete-form" = "/user/{user}/documents/{document}/delete",
 * "коллекция" = "/пользователь/{пользователь}/документы",
 * },
 */

Когда я захожу на любую страницу, появляется следующая ошибка.

Symfony\Component\Routing\Exception\MissingMandatoryParametersException: отсутствуют некоторые обязательные параметры ("пользователь") для создания URL-адреса для маршрута "entity.document.collection". в Drupal\Core\Routing\UrlGenerator->doGenerate() (строка 182 файла /var/www/html/web/core/lib/Drupal/Core/Routing/UrlGenerator.php).

Я также пытался создать файл routing.yml, но он все равно дает ту же ошибку.

объект.документ.коллекция:
  путь: '/пользователь/{пользователь}/документы'
  значения по умолчанию:
    _entity_list: 'документ'
    _title: 'Список документов'
  требования:
    _permission: 'доступ к содержимому'
  параметры:
    параметры:
      пользователь:
        тип: сущность: пользователь

Есть ли способ добиться того, чего я хочу?

apaderno avatar
флаг us
В качестве примечания: такой маршрут, как */user/{user}/documents/{document}/edit* или */user/{user}/documents/{document}/delete*, неверен: объект однозначно идентифицируется его значение идентификатора, а не идентификатор создавшего его пользователя и идентификатор объекта. Даже у узлов есть владелец, но путь для удаления узла не */user/{user}/nodes/{node}/delete*.
apaderno avatar
флаг us
Если вы хотите, чтобы у каждого пользователя была вкладка для отображения документов, созданных этим пользователем, это нормально, но */user/{user}/documents/{document}* не должен быть каноническим маршрутом для объекта, IMO.

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

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