私はWebページからエンティティを変更することに取り組んでいます(Symfonyでは珍しいことではありません:))。現在、変更が必要なエンティティがあります。編集の直後にエンティティを変更するのではなく、その編集をJeditableで行います。変更した要素を json に保存し、ユーザーが変更を確認すると (モーダル ダイアログの確認アクションを介して)、その JSON をコントローラーに送信します。
そして、事態は悪化します^^
json 配列に正しい情報が含まれていることを確認しました。しかし、コントローラーでリクエストを傍受すると、必要なものが含まれていないようです。これが私のコントローラーです:
public function postorganisationAction(){
$modifFields = array();
$content = $this->get("request")->getContent();
$this->get('logger')->info('request123456 ');
if (!empty($content))
{
$modifFields = json_decode($content, true);
$repository = $this->getDoctrine()
->getEntityManager()
->getRepository('MyBundle:Organisation');
$organisation = $repository->findById($modifFields["id"]);
$organisation->setFromArray($modifFields);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($organisation);
$em->flush();
}
}
setFromArray 関数は、 などの要素を含む配列を取得し"name" => "newname"
ます。
リクエスト、コンテンツ、または$modifFields["id"]
(先ほど言ったように、JSON の ID が jquery で正しいことを確認しました) のいずれかをログに記録しようとすると、ログは表示されません。
私が間違っていることについて手がかりを持っている人はいますか?
編集:
いくつかの変更の後 (ManseUK のおかげで)、次のことが可能になりました:
- jQuery 関数を取得して、配列ではなく JSON 文字列を送信する ( JSON.stringify(oModifFields);
)
- 問題のトラブルシューティング: でキャスト エラーが発生し$organisation
、それをオブジェクトに変換しました必要なタイプの
そしてそれはそれについてです^^