function edit(Application $app, $id) { $article = $this->articleManager->getById($id); $article->metadatas = $this->transformMetadatas($article->metadatas); /** @var $form Form **/ $form = $app['form.factory']->create(new ArticleForm()); if ("POST" === $app['request']->getMethod()) { $form->bindRequest($app["request"]); if ($form->isValid()) { $articleDatas = $form->getData(); $article->content = $articleDatas['content']; $article->title = $articleDatas['title']; $article->tags = $articleDatas['tags']; $article->metadatas = $articleDatas['metadatas']; $article->feature = $articleDatas['featured']; $this->articleManager->update($id, $article); $app["session"]->setFlash("success", "the article was updated"); return $app->redirect($app["url_generator"]->generate('admin.article.dashboard')); } else { $app["session"]->setFlash("error", "the form contains errors"); } } else { $form->setData($article); } return $app["twig"]->render("article/edit.twig", array('article_id' => $id, 'article' => $article, 'form' => $form->createView())); }