私はSymfonyで新しく、少し問題があります。 私はオンラインで検索していますが、私の問題に対する答えを見つけることができませんでした。 私はAPIを作成し、同様のメソッド(addUserImage、addInstructorImage)を持つ2つのコントローラ(UserController、InstructorController)を持っています。抽象BaseImage(ここではファイルを保存しています)、InstructorImageとUserImage(ここではパスを設定しています)を作成しました。これは私のコントローラーです:最適化 - 2つの同様のメソッド
/**
* @ApiDoc(
* name="addInstructorImage", section="Instructors",
* description="Add Instructor Image",
*)
*
* @Route("/instructor/{instructor}/image", name="instructors.image.add")
* @Method("POST")
*
* @param Request $request
* @param Instructor $instructor
* @View
*
* @return \FOS\RestBundle\View\View
*/
public function addInstructorImage(Request $request, Instructor $instructor)
{
$this->denyAccessUnlessGranted('edit', $instructor->getUser());
$image = new InstructorImage();
$form = $this->get('form.factory')
->createNamed('', InstructorImageType::class, $image, ['csrf_protection' => false, 'method' => 'POST']);
$form->handleRequest($request);
if ($form->isValid()) {
$image->setInstructor($instructor);
$em = $this->getDoctrine()->getManager();
$em->persist($image);
$em->flush();
return $this->view(null, Response::HTTP_NO_CONTENT);
}
return $this->view($form, Response::HTTP_BAD_REQUEST);
}
私の2番目のコントローラーは同じです。 唯一の違いは、別のオブジェクトと別のフォームです。このコードを最適化する最良の方法は何ですか?写真を追加するサービスやチェーンハンドラを使用するサービスを作成する必要がありますか?多分もっと良いアイデアがありますか? あなたのお手伝いをありがとうございます
私はこの質問が[ProgrammersStack](http://programmers.stackexchange.com/)にはるかによく当てはまると思います。 – Jurik
@Jurik他のサイトを参照するとき、[cross-postingが嫌になる]ことを指摘することはしばしば役に立ちます(http://meta.stackexchange.com/tags/cross-posting/info) – gnat
もちろん、Wojciechは未回答のこの記事を削除する必要がありますすぐ質問。 @gnat - 移行のためにフラグを立てると便利です。 – Jurik