Pada titik tertentu saya mulai menggunakan kode berikut untuk menguji apakah halaman saat ini adalah halaman admin:
$route = \Drupal::routeMatch()->getRouteObject();
$is_admin = \Drupal::service('router.admin_context')->isAdminRoute($route);
Tapi saya menemukan bahwa ini gagal pada halaman edit simpul di hook_entity_load ().
Bagaimana kita menguji jika kita berada di halaman admin di Drupal 8? Sesuatu seperti path_is_admin () di Drupal 7?
Saya menemukan bahwa jika saya menguji simpul yang sama mengedit jalur halaman dari luar hook_entity_load, menggunakan kode pada halaman ini ( https://api.drupal.org/api/drupal/includes%21path.inc/function/path_is_admin/7.x ) berhasil.
use Symfony\Component\HttpFoundation\Request;
use Symfony\Cmf\Component\Routing\RouteObjectInterface;
$path = '/node/75/edit';
$request = Request::create($path);
$route_match = \Drupal::service('router.no_access_checks')->matchRequest($request);
$route = $route_match[RouteObjectInterface::ROUTE_OBJECT];
$is_admin = \Drupal::service('router.admin_context')->isAdminRoute($route);
Tetapi jika saya mencoba menambahkan kode ini di hook_entity_load menggunakan jalur saat ini, saya mendapatkan loop yang fatal.
Saya pikir di mana saya terjebak sedang memuat rute saat ini di hook_entity_load.
_node_operation_route
diaktifkan juga mendapatkan opsi _admin_route
. \Drupal::service('router.admin_context')->isAdminRoute()
memeriksa bendera itu untuk rute saat ini secara default.