ড্রপাল 8-এ আমি কীভাবে বর্তমান উপনাম এবং / অথবা পাথ পাব?
ড্রুপাল 7-এ আমি এটি দিয়েছিলাম drupal_get_path_alias()
। ড্রুপাল 8 এ আমার সমতুল্য কোডটি কী ব্যবহার করা উচিত?
ড্রপাল 8-এ আমি কীভাবে বর্তমান উপনাম এবং / অথবা পাথ পাব?
ড্রুপাল 7-এ আমি এটি দিয়েছিলাম drupal_get_path_alias()
। ড্রুপাল 8 এ আমার সমতুল্য কোডটি কী ব্যবহার করা উচিত?
উত্তর:
অন্যান্য উত্তরগুলির মধ্যে কয়েকটি দ্রুপাল 8 এর পূর্ববর্তী আলফা / বিটা সংস্করণের সময় সঠিক ছিল বা অসম্পূর্ণ বলে মনে হয়েছিল। বিটা 7 (এবং আশা করি স্থায়ীভাবে) হিসাবে নিম্নলিখিত বিধিগুলি প্রয়োগ করা উচিত:
বর্তমান কাঁচা পথে (অ-অ্যালিজেড ড্রুপাল পাথ):
$current_path = \Drupal::service('path.current')->getPath()
বর্তমান ইউআরআই-র জন্য , যা অনুরোধের সরাসরি উপস্থাপনা (এটি এমনকি কোনও ক্যোয়ারী স্ট্রিং অন্তর্ভুক্ত করতে পারে):
$current_uri = \Drupal::request()->getRequestUri();
অবশ্যই কোনও গ্যারান্টি নেই যে এই $current_uri
মানটি আপনাকে একটি উপনাম দেবে, এমনকি যদি কোনও অনুরোধের জন্য পাওয়া যায় তবে এটি কেবল ব্যবহারকারীদের অনুরোধের জন্য প্রতিনিধিত্ব করে। সুতরাং আপনি যা যা জিজ্ঞাসা করছেন তা কঠোরভাবে করতে (যদি পাওয়া যায় তবেই উরফ পান, এবং যদি না পায় তবে) আমি মনে করি আপনি করতে পারেন:
$current_path = \Drupal::service('path.current')->getPath();
$result = \Drupal::service('path.alias_manager')->getAliasByPath($current_path);
অবশ্যই আপনি যে প্রক্রিয়াজাতকরণ করছেন তার উপর নির্ভর করে পথের পরিবর্তে রুটের সাথে কাজ করা ভাল হতে পারে তবে আমি মনে করি এটি সম্পূর্ণ অন্য বিষয়।
::getAliasByPath()
কোনও অগ্রণী স্ল্যাশ ছাড়া পাথের স্ট্রিংকে আর গ্রহণ করবে না (যেহেতু আমি বিশ্বাস করি বিটা 13)।
getAliasByPath
ভাষা উপসর্গ ছাড়া পথ ফিরে না। এই সমাধান করার কোন ধারণা?
URL টির জন্য URL টির সঠিক উপায় নয়।
$current_path = \Drupal::service('path.current')->getPath()
\Drupal::request()->getRequestUri();
সম্মান Drupal এর একটি subfolder মধ্যে ইনস্টল?
ড্রুপাল 8 এ আপনি টুইগের সাহায্যে এটি করতে পারেন:
{{ url('<current>') }}
উদাহরণ:
<a href="{{ url('<current>') }}">{{ 'Reload'|t }}</a>
থেকে: https://www.drupal.org/docs/8/theming/twig/function-in-twig-templates
{{ url('<current>') }}
প্রতিস্থাপনের নিদর্শনগুলির অধীনে তালিকাভুক্ত না হলেও দেখুন> ক্ষেত্রগুলি> পুনরায় লিখনের ফলাফল> লিঙ্ক পাথ গ্রহণ করে।
ড্রপাল 7-এ বর্তমান পাথ পাওয়ার জন্য আপনি ব্যবহার করতে পারেন current_path()
তবে ড্রুপাল 8 এ আপনি ব্যবহার করেন $url = Url::fromRoute('<current>');
।
current_path()
এবং drupal_get_path_alias()
তারা বিভিন্ন ফাংশন।
বর্তমান পাথ (অ্যালিজেড পাথ) পেতে:
// Returns something like /about
$url = \Drupal\Core\Url::fromRoute('<current>');
বর্তমান পাথ (সিস্টেমের পাথ) পেতে:
// Returns node/1
$path = $url->getInternalPath();
ড্রুপাল 8 এর জন্য, আমি এটি খুঁজে পেতে সক্ষম হয়েছি এটি সবচেয়ে পরিষ্কার সমাধান:
Url::fromRoute('<current>',array(),array('absolute'=>'true'));
\Drupal\Core\Url::fromRoute('<current>', [], ['absolute' => 'true'])->toString()
টুইগ টেমপ্লেটে / দ্রুপাল 8:
বর্তমান পৃষ্ঠার ইউআরএল
{{ url('<current>') }}
শুধুমাত্র পাঠ্য
{{ path('<current>') }}
দেখুন: https://www.drupal.org/docs/8/theming/twig/function-in-twig-templates
আপনি যদি ক্যোরিস্ট্রিংয়ের সাথেও নিখুঁত URL চান:
use Drupal\Core\Url;
// ...
Url::fromRoute('<current>', [], ['query' => \Drupal::request()->query->all(), 'absolute' => 'true'])->toString();