drupal_get_title()
đã bị xóa khỏi Drupal 8. Làm cách nào tôi có thể lấy tiêu đề trang trong Drupal 8?
drupal_get_title()
đã bị xóa khỏi Drupal 8. Làm cách nào tôi có thể lấy tiêu đề trang trong Drupal 8?
Câu trả lời:
Nếu bạn kiểm tra các bản ghi thay đổi, bạn sẽ thấy như sau: drupal_set_title () và drupal_get_title () đã bị xóa .
Bạn sẽ phải đọc thông báo thay đổi cho tất cả các thông tin, nhưng đây là điểm bắt đầu:
drupal_get_title ()
Vì các tiêu đề trên các tuyến đường hiện có thể được đặt theo nhiều cách khác nhau (xem bên trên), drupal_get_title () đã bị xóa. Ở vị trí của nó, bạn nên gọi dịch vụ title_resolver.
Drupal 7
<?php $title = drupal_get_title(); ?>
Drupal 8
<?php $request = \Drupal::request(); if ($route = $request->attributes->get(\Symfony\Cmf\Component\Routing\RouteObjectInterface::ROUTE_OBJECT)) { $title = \Drupal::service('title_resolver')->getTitle($request, $route); } ?>
Theo batch_test.module
(D8.4), các mục sau sẽ hoạt động tốt:
$request = \Drupal::request();
$route_match = \Drupal::routeMatch();
$title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());
Để biết thêm thông tin xem public function TitleResolver::getTitle
.
Câu trả lời được chấp nhận cho câu hỏi này đã hết hạn: Xem Tham số yêu cầu, tên tuyến đường và đối tượng tuyến đường nên được truy cập qua RouteMatch .
Bạn nên sử dụng dịch vụ current_route_match để truy xuất tuyến đường hiện tại, sau đó đọc hoặc sửa đổi các tham số của nó. Điều này kết thúc bất kỳ phép thuật Symfony, vv.
Trong mã thủ tục, bạn sẽ sử dụng mã tương tự như sau.
$route = \Drupal::routeMatch()->getCurrentRouteMatch()->getRouteObject();
$title = $route->getDefault('_title');
Trong mã hướng đối tượng, bạn nên sử dụng phép nội xạ phụ thuộc và tiêm dịch vụ.
$route->getDefault('_title');
nhưng chỉ có a $route->getDefault('_title_callback');
?
Drupal 8
$request = \Drupal::request();
// Assuming the Request is $request.
if ($request->attributes->has('_title')) {
return $request->attributes->get('_title');
}
->get('_MAGIC')
phương pháp này không may bị phản đối và chủ yếu bị xóa khỏi D8: drupal.org/node/2124749