2017-01-10 15 views
0

doctrineを使用してデータを保存しようとしています。理由は分かりませんが、データベースからデータを取得できますが、更新/挿入/削除はできません。Doctrine(Silex)はデータを保存できません。エラーはありません

私は機能perist()フラッシュ()でEntityManagerを使用しています。

問題が発生している可能性のあるGoogleを検索しましたが、何も見つかりませんでした。

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())); 
} 

私はフォームを使用しようとすると)、何も変更は絶対にありませんが、私は(私はダイを持っていた場合でも、フラッシュメッセージが表示されます。リダイレクトの前に

誰かが問題の特定に役立つことを願っています。

よろしくお願いいたします。

答えて

1

まあ私は解決策を見つけました。単純ですが、var $ app ['em']を使用するだけでentityManager関数find()を使用できますが、永続化またはフラッシュすることはできません。ですから、このvarを別のvarに入れて動作させるだけです。 だから、解決策は以下のとおりです。代わりに直接使用するの

$em = $app['em']; 
$em->persist($something); 
$em->flush(); 

: $アプリを[ '日は'] - >($何かを)持続。

関連する問題