有没有办法将User类扩展为自定义模块? 我需要创建一个自定义用户类(例如 Mymodule \ User ),它将使用/覆盖现有的User类方法或添加一些其他自定义方法。
谢谢
答案 0 :(得分:1)
您需要实施hook_entity_type_build().
在模块中创建一个扩展\Drupal\user\Entity\User
的新类。
use Drupal\user\Entity\User as BaseUser;
class MyUser extends BaseUser {
}
然后用你的替换现有的课程
use Drupal\Core\Entity\EntityTypeInterface;
/**
* @param EntityTypeInterface[] $entity_types
*/
function my_module_entity_type_build(&$entity_types) {
if (isset($entity_types['user'])) {
$entity_types['user']->setClass('Drupal\my_module\Entity\MyUser');
}
}
确保重建缓存。