return [
new ExpressionFunction('notFoundOnNull', function ($result) {
return sprintf('(null !== %1$s) ? %1$s : throw new NotFoundHttpException(\'Requested page is invalid.\')', $result);
}, function ($arguments, $result) {
if (null === $result) {
throw new NotFoundHttpException('Requested page is invalid.');
}
return $result;
}),
];
}
return is_string($variable) ? sprintf('"%s"', $variable) : $variable;
}, $expression);
return $this->expression->evaluate($expression, ['container' => $this->container]);
}
private function parseRequestValueTypecast($parameter, Request $request)
{
[$typecast, $castedValue] = explode(' ', $parameter, 2);
if (0 === strpos($parameter, '$')) {
return $request->get(substr($parameter, 1));
}
if (0 === strpos($parameter, 'expr:')) {
return $this->parseRequestValueExpression(substr($parameter, 5), $request);
}
if (0 === strpos($parameter, '!!')) {
return $this->parseRequestValueTypecast($parameter, $request);
}
RequestConfiguration $requestConfiguration
): ResourceGridView {
$driverConfiguration = $grid->getDriverConfiguration();
$request = $requestConfiguration->getRequest();
$grid->setDriverConfiguration($this->parametersParser->parseRequestValues($driverConfiguration, $request));
return new ResourceGridView($this->dataProvider->getData($grid, $parameters), $grid, $parameters, $metadata, $requestConfiguration);
}
}
$gridDefinition = $this->gridProvider->get($requestConfiguration->getGrid());
$request = $requestConfiguration->getRequest();
$parameters = new Parameters($request->query->all());
$gridView = $this->gridViewFactory->create($gridDefinition, $parameters, $requestConfiguration->getMetadata(), $requestConfiguration);
if ($requestConfiguration->isHtmlRequest()) {
return $gridView;
}
/**
* {@inheritdoc}
*/
public function get(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
{
$resources = $this->resourcesResolver->getResources($requestConfiguration, $repository);
$paginationLimits = [];
if ($resources instanceof ResourceGridView) {
$paginator = $resources->getData();
$paginationLimits = $resources->getDefinition()->getLimits();
public function indexAction(Request $request): Response
{
$configuration = $this->requestConfigurationFactory->create($this->metadata, $request);
$this->isGrantedOr403($configuration, ResourceActions::INDEX);
$resources = $this->resourcesCollectionProvider->get($configuration, $this->repository);
$this->eventDispatcher->dispatchMultiple(ResourceActions::INDEX, $configuration, $resources);
$view = View::create($resources);
$this->dispatcher->dispatch(KernelEvents::CONTROLLER_ARGUMENTS, $event);
$controller = $event->getController();
$arguments = $event->getArguments();
// call controller
$response = $controller(...$arguments);
// view
if (!$response instanceof Response) {
$event = new GetResponseForControllerResultEvent($this, $request, $type, $response);
$this->dispatcher->dispatch(KernelEvents::VIEW, $event);
public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
{
$request->headers->set('X-Php-Ob-Level', ob_get_level());
try {
return $this->handleRaw($request, $type);
} catch (\Exception $e) {
if ($e instanceof RequestExceptionInterface) {
$e = new BadRequestHttpException($e->getMessage(), $e);
}
if (false === $catch) {
No log messages
NotFoundHttpException |
---|
Symfony\Component\HttpKernel\Exception\NotFoundHttpException: Requested page is invalid. at vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/ExpressionLanguage/NotNullExpressionFunctionProvider.php:32 at Sylius\Bundle\ResourceBundle\ExpressionLanguage\NotNullExpressionFunctionProvider->Sylius\Bundle\ResourceBundle\ExpressionLanguage\{closure}(array('container' => object(appAppKernelProdDebugContainer)), null) (vendor/symfony/symfony/src/Symfony/Component/ExpressionLanguage/Node/FunctionNode.php:50) at Symfony\Component\ExpressionLanguage\Node\FunctionNode->evaluate(array('constant' => array('compiler' => object(Closure), 'evaluator' => object(Closure)), 'service' => array('compiler' => object(Closure), 'evaluator' => object(Closure)), 'parameter' => array('compiler' => object(Closure), 'evaluator' => object(Closure)), 'notFoundOnNull' => array('compiler' => object(Closure), 'evaluator' => object(Closure))), array('container' => object(appAppKernelProdDebugContainer))) (vendor/symfony/symfony/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php:67) at Symfony\Component\ExpressionLanguage\ExpressionLanguage->evaluate('notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug("kuuza/kuuza-exped-it/maqui", service(\'sylius.context.locale\').getLocaleCode()))', array('container' => object(appAppKernelProdDebugContainer))) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ParametersParser.php:86) at Sylius\Bundle\ResourceBundle\Controller\ParametersParser->parseRequestValueExpression('notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug("kuuza/kuuza-exped-it/maqui", service(\'sylius.context.locale\').getLocaleCode()))', object(Request)) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ParametersParser.php:60) at Sylius\Bundle\ResourceBundle\Controller\ParametersParser->parseRequestValue('expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', object(Request)) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ParametersParser.php:45) at Sylius\Bundle\ResourceBundle\Controller\ParametersParser->Sylius\Bundle\ResourceBundle\Controller\{closure}('expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))') at array_map(object(Closure), array('channel' => 'expr:service(\'sylius.context.channel\').getChannel()', 'taxon' => 'expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', 'locale' => 'expr:service(\'sylius.context.locale\').getLocaleCode()', 'sorting' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'sorting\', [])', 'filter' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'filter\', [])')) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ParametersParser.php:46) at Sylius\Bundle\ResourceBundle\Controller\ParametersParser->parseRequestValues(array('channel' => 'expr:service(\'sylius.context.channel\').getChannel()', 'taxon' => 'expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', 'locale' => 'expr:service(\'sylius.context.locale\').getLocaleCode()', 'sorting' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'sorting\', [])', 'filter' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'filter\', [])'), object(Request)) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ParametersParser.php:42) at Sylius\Bundle\ResourceBundle\Controller\ParametersParser->Sylius\Bundle\ResourceBundle\Controller\{closure}(array('channel' => 'expr:service(\'sylius.context.channel\').getChannel()', 'taxon' => 'expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', 'locale' => 'expr:service(\'sylius.context.locale\').getLocaleCode()', 'sorting' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'sorting\', [])', 'filter' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'filter\', [])')) at array_map(object(Closure), array('method' => 'createShopListQueryBuilder', 'arguments' => array('channel' => 'expr:service(\'sylius.context.channel\').getChannel()', 'taxon' => 'expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', 'locale' => 'expr:service(\'sylius.context.locale\').getLocaleCode()', 'sorting' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'sorting\', [])', 'filter' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'filter\', [])'))) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ParametersParser.php:46) at Sylius\Bundle\ResourceBundle\Controller\ParametersParser->parseRequestValues(array('method' => 'createShopListQueryBuilder', 'arguments' => array('channel' => 'expr:service(\'sylius.context.channel\').getChannel()', 'taxon' => 'expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', 'locale' => 'expr:service(\'sylius.context.locale\').getLocaleCode()', 'sorting' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'sorting\', [])', 'filter' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'filter\', [])')), object(Request)) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ParametersParser.php:42) at Sylius\Bundle\ResourceBundle\Controller\ParametersParser->Sylius\Bundle\ResourceBundle\Controller\{closure}(array('method' => 'createShopListQueryBuilder', 'arguments' => array('channel' => 'expr:service(\'sylius.context.channel\').getChannel()', 'taxon' => 'expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', 'locale' => 'expr:service(\'sylius.context.locale\').getLocaleCode()', 'sorting' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'sorting\', [])', 'filter' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'filter\', [])'))) at array_map(object(Closure), array('class' => 'AppBundle\\Entity\\Product', 'repository' => array('method' => 'createShopListQueryBuilder', 'arguments' => array('channel' => 'expr:service(\'sylius.context.channel\').getChannel()', 'taxon' => 'expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', 'locale' => 'expr:service(\'sylius.context.locale\').getLocaleCode()', 'sorting' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'sorting\', [])', 'filter' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'filter\', [])')))) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ParametersParser.php:46) at Sylius\Bundle\ResourceBundle\Controller\ParametersParser->parseRequestValues(array('class' => 'AppBundle\\Entity\\Product', 'repository' => array('method' => 'createShopListQueryBuilder', 'arguments' => array('channel' => 'expr:service(\'sylius.context.channel\').getChannel()', 'taxon' => 'expr:notFoundOnNull(service(\'sylius.repository.taxon\').findOneBySlug($slug, service(\'sylius.context.locale\').getLocaleCode()))', 'locale' => 'expr:service(\'sylius.context.locale\').getLocaleCode()', 'sorting' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'sorting\', [])', 'filter' => 'expr:service(\'request_stack\').getCurrentRequest().get(\'filter\', [])'))), object(Request)) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Grid/View/ResourceGridViewFactory.php:49) at Sylius\Bundle\ResourceBundle\Grid\View\ResourceGridViewFactory->create(object(Grid), object(Parameters), object(Metadata), object(RequestConfiguration)) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Grid/Controller/ResourcesResolver.php:58) at Sylius\Bundle\ResourceBundle\Grid\Controller\ResourcesResolver->getResources(object(RequestConfiguration), object(ProductRepository)) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ResourcesCollectionProvider.php:41) at Sylius\Bundle\ResourceBundle\Controller\ResourcesCollectionProvider->get(object(RequestConfiguration), object(ProductRepository)) (vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Controller/ResourceController.php:157) at Sylius\Bundle\ResourceBundle\Controller\ResourceController->indexAction(object(Request)) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:150) at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:67) at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:198) at Symfony\Component\HttpKernel\Kernel->handle(object(Request)) (web/app.php:27) |