Skip to main content

Redirection In Drupal 8 Programatcially

Redirection In Drupal 8 


In this post we can learn about the ways we can make redirect in Drupal 8.

You can make a custom redirect according to the context in many ways.

Form Redirect 

    We can use the formstate object to redirect from form. 
   Currently below two methods are available from Drupal\Core\Form  formstate to build  a   \Symfony\Component\HttpFoundation\RedirectResponse  for redirection.

1)setRedirect

 function setRedirect($route_name, array $route_parameters = [], array $options = [])
This method will call the setRedirectUrl function inside it.

1) route_parameters - optional argument

2) route_nameThe name of the route name.

3) options -    (optional) An associative array of additional URL options, with the
   *   following elements:

   *   - 'query': An array of query key/value-pairs (without any URL-encoding)
   *     to append to the URL.
   *   - 'fragment': A fragment identifier (named anchor) to append to the URL.
   *     Do not include the leading '#' character.
   *   - 'absolute': Defaults to FALSE. Whether to force the output to be an
   *     absolute link (beginning with http:). Useful for links that will be
   *     displayed outside the site, such as in an RSS feed.
   *   - 'attributes': An associative array of HTML attributes that will be
   *     added to the anchor tag if you use the \Drupal\Core\Link class to make
   *     the link.
   *   - 'language': An optional language object used to look up the alias
   *     for the URL. If $options['language'] is omitted, it defaults to the
   *     current language for the language type LanguageInterface::TYPE_URL.
   *   - 'https': Whether this URL should point to a secure location. If not
   *     defined, the current scheme is used, so the user stays on HTTP or HTTPS
   *     respectively. TRUE enforces HTTPS and FALSE enforces HTTP.

Usage:
    1) $form_state->setRedirect('<current>');
    2) $form_state->setRedirect('entity.view.edit_display_form', [
      'view' => $view->id(),
      'display_id' => $id,
    ]);

  
       2)setRedirectUrl

                    Url object needs to given for the function.

         function setRedirectUrl(Url $url)

   Usage:
        url = new Url('foo');
        url->setRedirectUrl($url)
      



Comments

Popular posts from this blog

Things You Must Know Before Trying Forms In Drupal 8.

 You Should Invest In Forms                      What does your customer think?  What do they looking for? will decide the success of any business.    In a digital marketing, Most of the customer requirement is gathered through forms. So its   essential  to spend some  time with forms Example : a user can search a particular product using the search form on an e-commerce website. Form API in Drupal 8          As we know already Drupal use forms for most of the administrative site building. Drupal 8 follows object-oriented style of programming with the integration of symfony . Based on the purpose of the form, it can inherit the basic properties and methods of the below classes. 1.Config Base 2.FormBase 3.ConfirmBase   Note : Routing configuration is done through the yml files in drupal 8 When the user hits the va...

Process of page request to response in Drupal 8 - Part 1

For every drupal developer is it necessary to know the under the hood process of how drupal internally works and some of them may already know  page rendering process of drupal 7. Lets see the Process of User Request to Response in  two parts: PART 1: Step 1:  The user make a request in the browser in the form of url for example: www.example.com Step 2:  The browser will pass the request to the Web server where the website  resides(Here Drupal makes website...) Step 3: In drupal , every request is handled via index.php file ,while digging into index file we may see the following lines as shown in the image. Note:  Symfony is a playing a major role  in  drupal 8 and drupal 8 follows the object oriented style of programming .. Components used from symfony in drupal 8.  So as you see , there is a two use statements  1.use Drupal\Core\DrupalKernel 2.use Symfony\Component\Ht...