Mav*_*ick 0 inheritance module class drupal-8
有没有办法从自定义模块中扩展 User 类?我需要创建一个自定义用户类(例如Mymodule\User),它将使用/覆盖现有的 User 类方法或添加一些其他自定义方法。
谢谢
您需要实现hook_entity_type_build()。
在您的模块中创建一个扩展\Drupal\user\Entity\User.
use Drupal\user\Entity\User as BaseUser;
class MyUser extends BaseUser {
}
Run Code Online (Sandbox Code Playgroud)
然后用你的替换现有的类
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');
}
}
Run Code Online (Sandbox Code Playgroud)
确保重建缓存。