2015-04-23 4 views
1

В моем Symfony2 проекте у меня есть route с параметрами:маршрутизатор матч URL с параметрами

my_route: 
    pattern: /{param1}/{param2} 
    defaults: { _controller: MyBundle:MyController:myAction } 

и в действии myAction я получаю URL-адрес, и я, когда я пытаюсь получить соответствующий маршрут путем сопоставления URL я получить эту ошибку:

500 Internal Server Error - ResourceNotFoundException 

, а затем трассировки стека показать это сообщение:

1. in C:\Users\itaziny\git\Symfony\app\cache\dev\appDevUrlMatcher.php at line 459 

    throw 0 < count($allow) ? new MethodNotAllowedException(array_unique($allow)) : new ResourceNotFoundException(); 

это мой код:

public function myActionAction(Request $request) { 
    $url = $request->headers->get('referer'); 
    $router = $this->get('router'); 
    $route = $router->match($url); 
    // Some code... 

    if (route == "my_route") { 
     // redirect to the pag: my_route 
    } 
    else { 
     //redirect to the page who called this action 
    } 
} 

действие: myAction вызывается из 2-х разных страниц, и я должен перенаправить на страницу назвавшего действия myAction

+0

Пожалуйста, посетите страницу с помощью 'app_dev.php', чтобы получить лучшее сообщение об ошибке –

+0

Я использую app_dev.php, я редактировал вопрос, чтобы показать трассировку стека – ihssan

+0

Пожалуйста, добавьте код вызываемой функции из контроллера (это похоже на 'myActionAction()'). Что ты пытаешься сделать? Почему вы хотите узнать соответствующий маршрут? Сколько маршрутов называют эту функцию контроллера? –

ответ

0

я, наконец, найти ответ здесь: Symfony2: Redirecting to last route and flash a message?

так, что я сделал именно это:

$uri = $request->headers->get('referer'); 
$baseUrl = $request->getBaseUrl(); 
$lastPath = substr($uri, strpos($uri, $baseUrl) + strlen($baseUrl)); 

$route = $this->get('router')->match($lastPath); 
if ($route['_route'] == "my_route") { 
    // redirect to the pag: my_route 
} 
else { 
    //redirect to the page who called this action 

}

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