Как отключить trailingSlashOnRoot в Symfony 4.2 с помощью файла конфигурации php? - PullRequest
0 голосов
/ 29 декабря 2018

Версия (версии) Symfony : 4.2.1

Описание
Я пытаюсь сделать POST-запрос на URL POST http://localhost:3000/api и получить ответкак

{"message":"No route found for \u0022POST \/api\u0022"}```

Но POST http://localhost:3000/api/ доступно

Я тоже читал этот раздел https://symfony.com/doc/current/routing.html#redirecting-urls-with-trailing-slashes

Как убрать косую черту с конца, когда я делаю POST-запросы?Я не нашел простой способ сделать это и подумал, что это ошибка.Проблема была создана https://github.com/symfony/symfony/issues/29706

Я получил ответ: Решение этой проблемы объяснено в https://symfony.com/blog/new-in-symfony-4-1-configurable-trailing-slash-on-imported-routes

И следует использовать этот метод https://github.com/symfony/symfony/blob/32a53bfc1346cac0d906b0f9c43498539e417576/src/Symfony/Component/Routing/Loader/Configurator/ImportConfigurator.php#L44

В файлах yamlмы просто должны установить trailing_slash_on_root: false.Может ли кто-нибудь помочь мне с лучшим способом удалить слеш, используя мою конфигурацию PHP?

Как воспроизвести
routes.php

<?php

use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;

# Api
$routesApi = new RouteCollection();
$routesApi->add('api', (new Route(''))
    ->setDefault('_controller', [App\Controller\Api\DefaultController::class, 'index'])
    ->setMethods('POST')
);
$routesApi->addPrefix('api');
$routesApi->addNamePrefix('api_');

# Default app
$routes = new RouteCollection();
$routes->addCollection($routesApi);

return $routes;

Отладка маршрутизатора

[vagrant@localhost htdocs]$ php bin/console debug:router
 ------------------ -------- -------- ------ --------------------------
  Name               Method   Scheme   Host   Path
 ------------------ -------- -------- ------ --------------------------
  api_api            POST     ANY      ANY    /api/
 ------------------ -------- -------- ------ --------------------------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...