我在Symfony 2.3.5中遇到了handleRequest方法的奇怪问题.
我正在使用handleRequest($ editForm-> handleRequest($ request))提交表单,并且一切正常.但是在生产环境中它不起作用.我已经调试了所有内容,但我发现它没有提交此表单.
我已经成功地改变了这一点
$editForm->handleRequest($request)
Run Code Online (Sandbox Code Playgroud)
至
$editForm->submit($request->request->get($editForm->getName()))
Run Code Online (Sandbox Code Playgroud)
但有人可以告诉我为什么handleRequest在prod环境中对我不起作用?
我删除了所有缓存.
编辑:我还提醒自己,它在创建方面做得很好,但在编辑/更新方面却没有.
我刚安装了昨天apc,我现在收到此错误:
FatalErrorException: Error: Cannot instantiate abstract class
ACME\WebBundle\Menu\MenuBuilder in
/var/www/app/cache/dev/appDevDebugProjectContainer.php line 743
Run Code Online (Sandbox Code Playgroud)
在那条线上有:
protected function getEposMain_MenuBuilderService()
{
return $this->services['epos_main.menu_builder'] = new \ACME\WebBundle\Menu\MenuBuilder($this->get('knp_menu.factory'));
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这意味着什么,我能用它做什么?
services.yml
services:
epos_main.menu_builder:
class: ACME\WebBundle\Menu\MenuBuilder
arguments: ["@knp_menu.factory"]
epos_main.menu.main:
class: Knp\Menu\MenuItem # the service definition requires setting the class
factory_service: epos_main.menu_builder
factory_method: createMainMenu
arguments:
- @request
- @twig
- 'ACMEWebBundle:Menu:menu.html.twig'
scope: request # needed as we have the request as a dependency here
tags:
- { name: knp_menu.menu, alias: main } # The alias is …Run Code Online (Sandbox Code Playgroud)