Last active
January 13, 2025 13:04
-
-
Save dmouse/4976461875a27689d155 to your computer and use it in GitHub Desktop.
Drupal 8: how to create a sub-request
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @file | |
* Contains Drupal\dmouse\Controller\SubRequestController. | |
* Generated by drupal/console. | |
*/ | |
namespace Drupal\dmouse\Controller; | |
use Drupal\Core\Controller\ControllerBase; | |
use Drupal\Core\DependencyInjection\ContainerInjectionInterface; | |
use Symfony\Component\DependencyInjection\ContainerInterface; | |
use Symfony\Component\HttpKernel\HttpKernelInterface; | |
use Symfony\Component\HttpFoundation\Request; | |
class SubRequestController extends ControllerBase implements ContainerInjectionInterface { | |
/** | |
* Symfony\Component\HttpKernel\HttpKernelInterface definition. | |
* | |
* @var Symfony\Component\HttpKernel\HttpKernelInterface | |
*/ | |
protected $httpKernel; | |
public function __construct(HttpKernelInterface $http_kernel) { | |
$this->httpKernel = $http_kernel; | |
} | |
public static function create(ContainerInterface $container) { | |
return new static( | |
$container->get('http_kernel.basic') | |
); | |
} | |
/** | |
* Index. | |
* | |
* @return string | |
* Return Hello string. | |
*/ | |
public function index() { | |
$sub_request = Request::create('/search/node', 'GET'); | |
$subResponse = $this->httpKernel->handle($sub_request, HttpKernelInterface::SUB_REQUEST); | |
$html = $subResponse->getContent(); | |
return $subResponse; | |
} | |
} |
If anyone has arrived here with strange behavior (such as losing styling), it may be because you should be using $container->get('http_kernel.basic')
I was experiencing odd redirects whenever I was handling responses via $container->get('http_kernel')
thanks @WesWedding I updated the reference
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I lose all styling when I use this. Anyone knows why and how to fix that?