drupal_get_title() telah dihapus dari Drupal 8. Bagaimana saya bisa mendapatkan judul halaman di Drupal 8?
drupal_get_title() telah dihapus dari Drupal 8. Bagaimana saya bisa mendapatkan judul halaman di Drupal 8?
Jawaban:
Jika Anda memeriksa catatan perubahan, Anda harus menemukan yang berikut: drupal_set_title () dan drupal_get_title () telah dihapus .
Anda harus membaca pemberitahuan perubahan untuk semua info, tetapi inilah titik awalnya:
drupal_get_title ()
Karena judul pada rute sekarang dapat diatur dengan berbagai cara (lihat di atas), drupal_get_title () telah dihapus. Sebagai gantinya, Anda harus memanggil layanan 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); } ?>
Per batch_test.module(D8.4) berikut ini akan berfungsi dengan baik:
$request = \Drupal::request();
$route_match = \Drupal::routeMatch();
$title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());
Untuk info lebih lanjut, lihat public function TitleResolver::getTitle.
Respons yang diterima untuk pertanyaan ini sudah usang : Lihat parameter Permintaan, nama rute, dan objek rute harus diakses melalui RouteMatch .
Anda harus menggunakan layanan current_route_match untuk mengambil rute saat ini, dan kemudian membaca atau memodifikasi parameternya. Ini membungkus sihir Symfony dll.
Dalam kode prosedural, Anda akan menggunakan kode yang mirip dengan yang berikut ini.
$route = \Drupal::routeMatch()->getCurrentRouteMatch()->getRouteObject();
$title = $route->getDefault('_title');
Dalam kode berorientasi objek, Anda harus menggunakan injeksi ketergantungan dan menyuntikkan layanan.
$route->getDefault('_title');tetapi hanya satu $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')metode ini sayangnya tidak digunakan lagi dan sebagian besar dihapus dari D8: drupal.org/node/2124749