Drupal 8:扩展用户 class
Drupal 8: Extend user class
有什么方法可以扩展 User class 形成自定义模块吗?
我需要创建一个自定义用户 class(例如 Mymodule\User),它将 use/override 现有用户 class 方法或添加一些其他方法自定义方法。
谢谢
您需要实施hook_entity_type_build().
在扩展 \Drupal\user\Entity\User
.
的模块中创建一个新的 class
use Drupal\user\Entity\User as BaseUser;
class MyUser extends BaseUser {
}
然后用你的
替换现有的class
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');
}
}
确保重建缓存。
有什么方法可以扩展 User class 形成自定义模块吗? 我需要创建一个自定义用户 class(例如 Mymodule\User),它将 use/override 现有用户 class 方法或添加一些其他方法自定义方法。
谢谢
您需要实施hook_entity_type_build().
在扩展 \Drupal\user\Entity\User
.
use Drupal\user\Entity\User as BaseUser;
class MyUser extends BaseUser {
}
然后用你的
替换现有的classuse 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');
}
}
确保重建缓存。