默认情况下,user实体的label()方法返回用户名。因此,在使用用户引用的网站上的任何地方,都会显示用户名。
我需要修改这个方法,以便在任何地方显示用户名,它都将使用我的自定义函数。因此,与"custom_user_name“不同,它将显示"Firstname Lastname”。
你知道怎么做到这一点吗?谢谢。
发布于 2020-04-27 10:12:08
上面的例子可能不是你想要做的事情,它可能不像你想要的那样工作。例如,默认的用户列表将显示带有类覆盖的用户名。
此外,在某些情况下甚至不可能覆盖用户类。
有用钩子编辑标签的快捷方式;
/**
* Implements hook_user_format_name_alter().
*/
function MYMODULE_user_format_name_alter(&$name, \Drupal\Core\Session\AccountInterface $account) {
$user = $account instanceof \Drupal\user\UserInterface ?
$account :
\Drupal::entityTypeManager()->getStorage('user')->load($account->id());
$name = $user->get('my_field')->value;
}https://drupal.stackexchange.com/questions/281940
复制相似问题