Saya memiliki objek simpul, dan saya mencoba menggunakannya untuk mendapatkan path yang diberikan di Drupal 8.
Ada drupal_lookup_path()
di Drupal 7 tapi saya tidak melihat padanan atau dokumentasi untuk Drupal 8.
Apa cara "Drupal" baru untuk mendapatkan jalur dari objek simpul?
Akankah itu menjadi sesuatu yang sederhana $node->get('path')
?
Ini sepertinya pertanyaan sederhana, tapi saya sama sekali tidak menemukan dokumentasi apa pun di dalamnya.
Perhatikan saya tidak ingin alias path untuk path saat ini; Saya ingin alias path untuk node sewenang-wenang, diberi objek node atau ID node.
8
nodes
path-aliases
Jack Ryan
sumber
sumber
Jawaban:
Untuk mendapatkan path untuk id node gunakan AliasManager :: getAliasByPath :
sumber
Bagaimana dengan menggunakan Url :
sumber
Url
objek secara langsung$node->toUrl()
.Jika Anda hanya memiliki nid, solusi 4k4 untuk
Bagus sekali. Tetapi jika Anda sudah memiliki objek simpul Anda dapat melewati satu atau dua langkah. Node sebenarnya memiliki metode bawaan untuk mendapatkan url.
Akan mengembalikan url alias dari node.
toUrl () mengembalikan objek url. Lihat di sini https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Url.php/class/Url/8.2.x
dan toString () adalah metode objek url yang mengembalikan representasi string dari url.
sumber
$node->toUrl()->setAbsolute()->toString()
akan mengembalikan URL absolut, berguna untuk berbagi, dll.Anda juga bisa menggunakan metode load dari
path.alias_storage
untuk mengembalikan array dari alias alias atau boolean false jika tidak ada jalur yang ditemukan untuk node itu.$aliasArray = \Drupal::service('path.alias_storage')->load(['source' => '/node/' . $nid]);
sumber
Cara terbaik untuk mendapatkan URL simpul dari simpul objek-
Ini juga akan menangani bahasa simpul.
sumber
Jika Anda ingin mendapatkan simpul alias url menurut bahasa, jangan lupa untuk menggunakan bahasa seperti ini.
Jika Anda menggunakannya di kelas jangan lupa untuk menggunakan injeksi dependensi dengan benar.
sumber
Saya berharap untuk solusi yang lebih "Drupalesque", tapi inilah yang saya buat sendiri untuk melakukan pekerjaan itu:
sumber