ড্রুপাল 7 এ, আমি নিম্নলিখিত কোডটি ব্যবহার করি।
function my_goto($path) {
drupal_goto($path, array(), 301);
}
ড্রুপাল 8 এ আমার কোন কোড ব্যবহার করা উচিত?
ড্রুপাল 7 এ, আমি নিম্নলিখিত কোডটি ব্যবহার করি।
function my_goto($path) {
drupal_goto($path, array(), 301);
}
ড্রুপাল 8 এ আমার কোন কোড ব্যবহার করা উচিত?
উত্তর:
এটি সেই কোড যা দ্রুপাল ৮-এ ব্যবহার করা উচিত more আরও তথ্যের জন্য পরিবর্তন রেকর্ড দেখুন ।
use Symfony\Component\HttpFoundation\RedirectResponse;
function my_goto($path) {
$response = new RedirectResponse($path);
$response->send();
return;
}
use Symfony\Component\HttpFoundation\RedirectResponse;
অনু ম্যাথিউয়ের প্রতিক্রিয়া বাড়ানোর জন্য ;
একটি স্থিতি কোড যুক্ত করতে, এটি RedirectResponse শ্রেণিতে কেবল দ্বিতীয় প্যারাম;
use Symfony\Component\HttpFoundation\RedirectResponse;
function my_goto($path) {
$response = new RedirectResponse($path, 302);
$response->send();
return;
}
আমি এখনও drupal_goto
ড্রুপাল 8 এ কাজ করি নি তবে ডকুমেন্টেশন অনুযায়ী ড্রুপাল 8 থেকে সরানো হয়েছে।
আপনার জায়গায় drupal_goto
লিখতে হবে:
return new RedirectResponse(\Drupal::url('route.name'));
এবং প্যারামিটার সহ এরকম কিছু:
return new RedirectResponse(\Drupal::url('route.name', [], ['absolute' => TRUE]));
এখানে https://www.drupal.org/node/2023537 এবং শ্রেণি পুনর্নির্দেশের রেসপন্স দেখুন
\Drupal::url('route.name')
আপনার ইউআরএল বা সম্ভবত নিখুঁত url দিয়ে প্রতিস্থাপন করার চেষ্টা করুন ।
বিল্ট-ইন সিম্ফোনিজ ইভেন্টডিসপাচার কম্পোনেন্টের উপকারের মাধ্যমে এটি অর্জন করা যেতে পারে। আপনাকে যা করতে হবে তা হ'ল একটি কাস্টম মডিউল তৈরি করা। আপনার পরিষেবাদি.আইএমএল ফাইল যুক্ত করুন এবং উপযুক্ত পরিষেবা কনফিগারেশন সরবরাহ করুন।
services:
mymodue.subscriber:
class: Drupal\my_module\EventSubscriber
tags:
- { name: event_subscriber }
আপনার মডিউলগুলিতে এসআরসি ডিরেক্টরিতে আপনার ইভেন্টসউসক্রাইবার.এফপি ক্লাস তৈরি করুন এবং আপনার পদ্ধতিগুলি এখানে বর্ণনা করুন।
<?php
use Symfony\Component\HttpFoundation\RedirectResponse;
public function checkForCustomRedirect(GetResponseEvent $event) {
$route_name = \Drupal::request()->attributes->get(RouteObjectInterface::ROUTE_NAME);
if($route_name === 'module.testPage') {
$event->setResponse(new RedirectResponse($url, $status = 302,$headers);
}
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
$events = [];
$events[KernelEvents::REQUEST][] = array('checkForCustomRedirect');
return $events;
}
আমার জন্য নিখুঁতভাবে কাজ করা পুনর্নির্দেশ কোডটি নিম্নলিখিত:
$response = new RedirectResponse($path);
return $response->send();
অন্য যে কোনও ক্ষেত্রে আমি একরকম ব্যতিক্রম বা ত্রুটিগুলি পাচ্ছি , উদাহরণস্বরূপ: লজিকএক্সেপশন: নিয়ামককে অবশ্যই একটি প্রতিক্রিয়া ফিরিয়ে দিতে হবে ...
অথবা
https://www.drupal.org/project/drupal/issues/2852657
এটি সম্পর্কে ইতিমধ্যে একটি আলোচনা আছে, আশা করি যে সাহায্য করে!
এটি অভ্যন্তরীণ বা বাহ্যিক পুনঃনির্দেশের জন্য কাজ করে:
use Symfony\Component\HttpFoundation\RedirectResponse;
use Drupal\Core\Url;
$url = Url::fromUri('internal:/node/27'); // choose a path
// $url = Url::fromUri('https://external_site.com/');
$destination = $url->toString();
$response = new RedirectResponse($destination, 301);
$response->send();