Important

You are browsing upcoming documentation for version 5.1 of OroCommerce, OroCRM, and OroPlatform, scheduled for release in March 2023. Read version 5.0 (the latest LTS version) of the Oro documentation to get up-to-date information.

See our Release Process documentation for more information on the currently supported and upcoming releases.

Returning a Custom Status Code

To return custom status code from the layout, create and return Symfony\Component\HttpFoundation\Response passing rendered layout content as the first argument and the status code as the second.

Study the example below:

 /**
 * @Route("/sample_not_found_page_code")
 *
 * @return Response
 */
public function sampleNotFoundCodeAction()
{
    $contextParams = ['some_context_variable' => 'value'];
    $content = $this->get('layout')->render($contextParams, ['some_context_variable']);

    return new Response($content, 404);
}

Please, be aware that if you pass some custom context params to the LayoutManager::render() method as the first argument, you have to resolve these variables by passing keys as the second argument.

You could have gained the similar result by configuring the layout via the @Layoutvars={“some_context_variable”}) annotations. However, annotations cannot be used when you call the LayoutManager::render() manually.