0

I created a template user-comment.html.twig to customize the rendering of the comments author.

I can not display the user account url:

user.url

does not work.

How to display the user's url in a template?

{#
/**
 * @file
 * Default theme implementation to present all user data.
 *
 * This template is used when viewing a registered user's page,
 * e.g., example.com/user/123. 123 being the user's ID.
 *
 * Available variables:
 * - content: A list of content items. Use 'content' to print all content, or
 *   print a subset such as 'content.field_example'. Fields attached to a user
 *   such as 'user_picture' are available as 'content.user_picture'.
 * - attributes: HTML attributes for the container element.
 * - user: A Drupal User entity.
 *
 * @see template_preprocess_user()
 *
 * @ingroup themeable
 */
#}
<article{{ attributes.addClass('user--comment') }}>

  {{ content.user_picture }}
  {{ user.label }}
  <div class="bs-field-status">
    {{ content.utilisateur_statut_entity_view_1 }}
    {{ content.utilisateur_statut_entity_view_2 }}
    {{ content.utilisateur_statut_entity_view_3 }}
  </div>

  <div class="bs-field-link">
    <a href="{{ user.url }}" title="{{ user.label }}"></a>
  </div>

</article>
1

You can use the path function in a Twig template:

<a href="{{ path('entity.user.canonical', {'user': user.id}) }}">{{ 'View user profile'|t }}</a>

I don't know if user.url is a thing.

| improve this answer | |
  • 1
    @Kevin, $user->url() is a thing, but unfortunately the Twig sandbox policies don't allow it. So you have to use this workaround if you don't want to put this PHP in a preprocess hook. – 4k4 Nov 20 '18 at 20:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy