2016-06-13 8 views
0

を更新していない私のコードです:$データオブジェクトが正しく ドクトリンORMは、ここでエンティティ

  • $データオブジェクトが正しくフォーマット返さDBから返される

    •  $data = $eManager->getRepository('Entity')->findOneBy(array('user_id' => $id)); 
           $data->setUpdatedAt(new \DateTime()); 
           $eManager->persist($data);   
           $eManager->flush(); 
      

      は、ここで私が知っているものです

    • 「永続」の代わりに「マージ」を試みました...いいえ
    • setUpdatedAtメソッドが動作します
    • "$ eManager-> commit();"を追加しようとしました。同様に、いいえ
    • コードはエラーをスローしません
    • 私のエンティティは別の方法で正しく作成されています。したがって、Entityクラスとデータベース接続は正常に動作しています。

    実際にはデータベースには永続化されていません。

    私はZend/Doctrine/Apigilityを初めて使っています...データが永続していることを確認するために何か他の点がありますか?すべてのドキュメントは、これを目的のメソッドとして指しているようですが、なぜそれがデータベースに保存されていないのかわかりません。

  • +0

    データをフラッシュする前に、var_dumpを実行してみてください。実際に値が更新されていますか? –

    +0

    はい - $データオブジェクトは実際に更新されます。 –

    +1

    オブジェクトはすでに管理されているので、 'persist()' -callはまったく必要ありません。 symfony2プロファイラを見てみてください。実行されたすべてのクエリが表示されます。たぶん問題に光を当てるかもしれません。 –

    答えて

    0

    勝利のためのHTTPメソッド。

    私が言及したように、私はZend/DoctrineとApigilityを使用しています。これに対する答えは、コードは正しいが、Apigilityの中間層は、HTTPメソッドに基づいて要求をフィルタリングするためのシーンを実行していたということでした。私がまだこのフレームワークに慣れているのは確かではありませんが、コードをupdate()メソッドからpatch()メソッドに移動してしまえば、それはうまくいきました。

    Doctrineの部分が正しいので、私は質問を削除すると考えましたが、DoctrineとApigilityの両方を使用している可能性がある人にとって、これは参考になります。

    +0

    私はあなたの答えで言及した全体の '更新'方法はあなたの質問に言及されていないので、質問を削除する方が良い選択肢になると思います。 – Wilt

    関連する問題