我遇到的错误只发生在制作上。我有一个表单,使用单选按钮来更改我的应用程序的语言翻译。当用户选择“en”时,应用程序将更改为英语等。
在制作时,切换单选按钮会引发错误:
Uncaught PHP Exception (ResourceNotFoundException) ... at ... app/cache/prod/appProdUrlMatcher.php:129
该行只抛出ResourceNotFoundException,但是我正在查看这行:
if (preg_match('#^/(?P<_locale>[^/]++)/translate$#s', $pathinfo, $matches)) {
return $this->mergeDefaults(array_replace($matches, array('_route' => 'translate_language')), array ( '_controller' => 'Path\\ToMy\\Controller\\TranslateController::translateAction',));
}
代码在preg_match内部工作,但在返回时失败。我所有的其他路线都有效!
以下是我的translateAction代码:
public function translateAction(Request $request)
{
$form = $this->createTranslateForm();
$form->handleRequest($request);
if ($request->getMethod() == 'POST') {
$data = $request->request->get('translate-form');
$language = $data['language'];
$this->get('session')->set('_locale', $language);
$referRoute = $this->getRefererRoute();
$url = $this->get('router')->generate($referRoute, array('_locale' => $language));
return $this->redirect($url);
}
}
有人能指出我正确的方向吗?