Câu trả lời:
{{ user.name.0.value }}
sẽ cung cấp cho bạn những gì bạn muốn.
Cách ưa thích là tiêm tên người dùng làm biến trong hàm tiền xử lý. Để làm như vậy, hãy chỉnh nó trong tệp .theme của chủ đề của bạn
<?php
/**
* Implements hook_preprocess_user().
*/
function yourtheme_preprocess_user(&$variables) {
/** @var User $account */
$account = $variables['elements']['#user'];
$variables['username'] = $account->getDisplayName();
}
sau đó trong mẫu người dùng của bạn, bạn có thể sử dụng như {{ username }}
.
Biên tập:
Để có được URL đầy đủ:
{{ path('entity.user.canonical', {'user': user.id}, {}) }}
$variables['user_url'] = Url::fromRoute('entity.user.canonical', ['user' => $account->id()])->setAbsolute()->toString();
Tên hiển thị không phải là một lĩnh vực bạn có thể cấu hình {{ content }}
. Bạn có thể lấy nó trực tiếp từ thực thể người dùng:
{{ user.displayname }}
Tham chiếu cho phương thức php: AccountInterface :: getDisplayName
Câu trả lời này là đặc biệt để có được tên người dùng trong menu.html.twig
Giải pháp chuyển tên người dùng thông qua macro làm việc cho tôi. Đặt một biến và chuyển nó vào macro là cần thiết vì chúng nằm ngoài phạm vi của macro trong menu.html.twig
{% set username = user.account.name %}
{{ menus.menu_links(items, attributes, 0,logged_in,username) }}
{% macro menu_links(items, attributes, menu_level,logged_in,username) %}
{{ username }}
{% endmacro %}
hook_user_format_name()
chạy để làm bất cứ điều gì mà một trang web có thể muốn cho tên người dùng.