我在尝试使用doctrine保存数据时遇到了麻烦。我不明白为什么,但我可以从数据库中获取数据,但我无法更新/插入/删除。
我正在使用带有 perist()和 flush()函数的entityManager。
我在谷歌搜索问题可能但我找不到任何东西。
function editPage($id, Request $request, Application $app) {
$data = array('id' => 0);
if ($id != 0) { // existing page
$page = $app['em']->find('BLOG\\Models\\Page', $id); // get the page
$data = array(
'titre' => $page->getTitle(),
'slug' => $page->getSlug(),
'contenu' => $page->getContent(),
'id' => $id
);
}
$form = $app['form.factory']->createBuilder(FormType::class, $data)
->setAction($app['url_generator']->generate('adminPageEdit', array('id' => $id)))
->setMethod('POST')
->add('titre')
->add('slug')
->add('contenu', 'textarea')
->add('id', 'hidden')
->add('Envoyer', 'submit')
->getForm();
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
if($id != 0) { // existing page
$page->setTitle($data['titre']);
$page->setSlug($data['slug']);
$page->setContent($data['contenu']);
}
else {
$page = new Page(
$data['titre'],
$data['slug'],
$data['contenu']
);
}
$app['em']->persist($page);
$app['em']->flush();
$app['session']->getFlashBag()->add('flash', 'Page validée!');
return $app->redirect($app['url_generator']->generate('adminPagesList'));
}
return $app['twig']->render('admin/editPage.twig', array('form' => $form->createView()));
}
当我尝试使用表单时,绝对没有修改,但是我得到了flash消息,即使我在重定向之前有一个 die(); 。
我希望有人可以帮我找到问题。
问候。
答案 0 :(得分:1)
我找到了解决方案,很简单,只需使用var $ app ['em']就可以使用entityManager函数find(),但是你不能坚持使用它。所以唯一要做的就是将这个var放在另一个var中,它会起作用。 所以解决方案是:
$em = $app['em'];
$em->persist($something);
$em->flush();
而不是直接使用: $应用[ '时间'] - >坚持($东西);