Не найдено маршрута для & quot; GET / Index & quot; при генерации контроллера Symfony

я использую generate:controller создать новый контроллер в моем приложении Symfony 3. Но маршрут не найден.

Вот ввод / вывод команды …

First, you need to give the controller name you want to generate.
You must use the shortcut notation like AcmeBlogBundle:Post

Controller name: ApplicationSonataPageBundle:Page

Determine the format to use for the routing.

Routing format (php, xml, yml, annotation) [annotation]: yml

Determine the format to use for templating.

Template format (twig, php) [twig]:

Instead of starting with a blank controller, you can add some actions now. An action
is a PHP function or method that executes, for example, when a given route is matched.
Actions should be suffixed by Action.New action name (press <return> to stop adding actions): IndexAction
Action route [/Index]:
Template name (optional) [ApplicationSonataPageBundle:Page:index.html.twig]:

New action name (press <return> to stop adding actions):Summary before generationYou are going to generate a "ApplicationSonataPageBundle:Page" controller
using the "yml" format for the routing and the "twig" format
for templating
Do you confirm generation [yes]?

… и вот содержимое нового класса контроллера:

namespace Application\Sonata\PageBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class PageController extends Controller
{
public function IndexAction()
{
return $this->render('ApplicationSonataPageBundle:Page:index.html.twig', array(
// ...
));
}

}

… который не называется. Вместо этого я получаю следующую ошибку в браузере:

Маршрут не найден для «GET / Index»

Есть ли дополнительный шаг, который мне нужно сделать, прежде чем увидеть мое действие?

Что я пробовал: я до сих пор пробовал все другие типы маршрутизации (xml, php, yml) без успеха.

1

Решение

Есть несколько вещей, чтобы проверить:

Убедитесь, что ваши маршруты включены внутри config/routes.yml

https://symfony.com/doc/3.3/routing.html
https://symfony.com/doc/3.3/routing.html#loading-routes
https://symfony.com/doc/3.3/routing/external_resources.html

Также убедитесь, что ваш пакет загружен в ядро: app/AppKernel.php

https://symfony.com/doc/3.3/page_creation.html#bundles-configuration

Еще одна вещь, которую я заметил, ваше действие / маршрут пишется с большой буквы. Я не уверен, если это влияет на вещи, но обычная практика camelCasing так что вы бы indexAction скорее, чем IndexAction

Существует также команда, чтобы показать доступные маршруты, я думаю, что это что-то вроде php bin/console routes:debug если вы бежите php bin/console он должен показать вам доступные команды

2

Другие решения

Для чего это стоит: я просто сдался и скопировал следующее:

_index:
path:     /Index
defaults: { _controller: ApplicationSonataPageBundle:Page:Index }

… из сгенерированного файла yml в основной файл моего приложения routing.yml.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector