2016-02-23 3 views
0

Symfony бросает это исключение при обращении связанный с ним URI:Контроллер Symfony 2 нельзя назвать вызывающим?

Контроллер "Backend \ ChatBundle \ Controller \ :: generateAction контроллера по умолчанию" для URI "/ чат/генерировать/2" не отозваны.

Это соответствующий код контроллера:

/** 
* Class DefaultController 
* @package Backend\ChatBundle\Controller 
* @Route("/chat") 
*/ 
class DefaultController extends BaseController 
{ 

/** 
* @Route("/generate/{id}", requirements={"id":"\d+"}, name="backend_chat_default_create") 
*/ 
public function generateAction(User $user) 
{ 

Я пытался очистить кэш-каталог и изменить имя метода и маршрута не увенчались успехом.

+0

могли бы вы показать файл маршрута? – KPK

+0

@kpk http://pastebin.com/jgcpK5V8 –

+0

Может ли быть, что вы определяете префикс как в вашем DefaultController (/ chat), так и в файле маршрутизации (/)? – hasumedic

ответ

0

http://pastebin.com/jgcpK5V8 линии № 4 и 12 имеют одинаковые prefix /. Это проблема. Вы можете изменить линию № 4 prefix : /chat. Вы не можете дать тот же самый префикс / более чем одному контроллеру. Редактировать: Обратите внимание, что название маршрута просто «backend_chat», указанное в файле маршрута.

class DefaultController extends BaseController 
{ 
    /** 
    * @Route("/chat/generate/{id}", requirements={"id":"\d+"}, name="backend_chat") 
    */ 
    public function generateAction(User $user) 
    { 
     // some code here 
    } 

в файле маршрута добавить, как это

backend_chat: 
    path:  /chat 
    defaults: { _controller: DemoDemoBundle:Default:generate } 
+0

здесь '/' является корнем. – KPK

+0

Но если я изменяю «/» - «/ chat» и удаляю @Route («/ chat») в контроллере, это не решило мою проблему, контроллер не может быть вызван. Если я не удаляю аннотацию Маршрут в контроллере SF возвращает мне 404. –

+0

проверить отредактированный ответ – KPK

Смежные вопросы