2013-12-17 6 views
2

У меня есть создать новый пакет в ИПВ \ Moda \ CategoryBundle \ Controller \ DefaultController.phpSymfony2 новый пакет маршрутизации

и изменение маршрутизации на:

namespace Moda\CategoryBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 

class DefaultController extends Controller 
{ 
    /** 
    * @Route("/show", name="_show") 
    * @Template() 
    */ 
    public function indexAction() 
    { 
     die('test'); 
     return array(); 
    } 
} 

и мой routing.yml в приложении/конфигурации

moda_category: 
    resource: "@ModaCategoryBundle/Controller/" 
    type:  annotation 
    prefix: /

Это связывает dosnt работу:

локальный/веб/app_dev.php/категория/шоу

локальный/веб/app_dev.php/показать

Вы знаете, что я делаю неправильно?

+0

После вас измените конфигурацию, вы очистили кеш? – virhi

+0

Я предлагаю задать имя маршрута и проверить, видно ли это маршрутизатором. Вы можете проверить таким образом: app/console router: debug имя_пользователя – Cyprian

+0

Я установил имя и проверил маршрутизацию с помощью маршрутизатора app/console: debug Я вижу, что это видно _show ЛЮБОЙ ЛЮБОЙ ЛЮБОЙ/показ У меня есть alsow clear cache, но он все еще не работает , Есть идеи? – Purzynski

ответ

3

Я думаю, вы должны импортировать файл config.yml внутри вашего пакета. Таким образом, вместо:

moda_category: 
    resource: "@ModaCategoryBundle/Controller/" 
    type:  annotation 
    prefix: /

Изменить это:

moda_category: 
    resource: "@ModaCategoryBundle/Resources/config/routing.yml" 
    type:  annotation 
    prefix: /

, а затем добавить маршруты, нужно в этом файле.

+0

Почему вы хотите написать маршрут в файле @ ModaCategoryBundle/Resources/config/routing.yml. Весь смысл использования аннотации - настроить маршрут внутри вашего файла контроллера. – virhi

0

Для тех, кто использует Symfony 3.4+

У меня была такая же проблема, но я легко решил. Я использую Symfony 3.4

Вы должны ввести:

ModaCategoryBundle/Controller/DefaultController.php

По умолчанию ваш IndexAction в DefaultController.php должно быть как:

public function indexAction() 
    { 
     return $this->render('ModaCategoryBundle:Default:index.html.twig'); 
    } 

Тогда вы просто должны изменить этот путь с этим:

public function indexAction() 
    { 
      return $this->render('@ModaCategory/Default/index.html.twig'); 
    } 
Смежные вопросы