在drupal 8的module.routing.yml文件中,函数“node.view”在哪里
_entity_access: 'node.view'
来源: https ://api.drupal.org/api/drupal/core!modules!book!book.routing.yml/8
提前谢谢你
在drupal 8的module.routing.yml文件中,函数“node.view”在哪里
_entity_access: 'node.view'
来源: https ://api.drupal.org/api/drupal/core!modules!book!book.routing.yml/8
提前谢谢你
简单地说,在 Drupal 8_entity_access: node.view
中的module.routing.yml
文件中意味着“调用node
实体中定义的访问处理程序并view
作为正在检查访问的操作提供”。
访问处理access
程序在实体类型注释的处理程序条目中定义。例如对于节点实体
/**
* Defines the node entity class.
*
* @ContentEntityType(
* id = "node",
* label = @Translation("Content"),
* bundle_label = @Translation("Content type"),
* handlers = {
* "access" = "Drupal\node\NodeAccessControlHandler",
* }
* )
*/
因此,查看回调处的代码\Drupal\node\NodeAccessControlHandler::access()
,$operation
参数包含该值'view'
。
public function access(EntityInterface $entity, $operation, $langcode = LanguageInterface::LANGCODE_DEFAULT, AccountInterface $account = NULL, $return_as_object = FALSE) {
$account = $this->prepareUser($account);
if ($account->hasPermission('bypass node access')) {
$result = AccessResult::allowed()->cachePerPermissions();
return $return_as_object ? $result : $result->isAllowed();
}
if (!$account->hasPermission('access content')) {
$result = AccessResult::forbidden()->cachePerPermissions();
return $return_as_object ? $result : $result->isAllowed();
}
$result = parent::access($entity, $operation, $langcode, $account, TRUE)->cachePerPermissions();
return $return_as_object ? $result : $result->isAllowed();
}