Kaynak oluşturmak için kullandığım POST uç noktaları için Symfony Form Bileşenini FOSRestBundle ile nasıl kullanmam gerektiği açık değil. İşte FOSRestBundle'da Symofny Formları ile POST isteklerini işleme
benim POST denetleyicisi eylem var ne://GuestController.php
public function cpostAction(Request $request)
{
$data = json_decode($request->getContent(), true);
$entity = new Guest();
$form = $this->createForm(GuestType::class, $entity);
$form->submit($data);
if ($form->isValid()) {
$dm = $this->getDoctrine()->getManager();
$dm->persist($entity);
$dm->flush();
return new Response('', Response::HTTP_CREATED);
}
return $form;
}
Ne yapmam geçerli:
- son nokta (
/guests
) birapplication/json
POST isteği gönderme; - Bir varlığa bağlanan bir form örneği oluşturun (
Guest
); - JSON'u gönderdiğim için, formunu (
$form->submit($data)
) göndermeden öncejson_decode
istek gövdesine ihtiyacım var.
Ben soruları:
- Gerçekten hep
json_decode()
Request
içerik gerek var mı elle Form göndermeden önce? Bu işlem FosRestBundle ile bir şekilde otomatikleştirilebilir mi?
denetçi eylemine
application/x-www-form-urlencoded
veri göndermek için mümkün mü ve bunun ele var:
-
$form->handleRequest($request)
if ($form->isValid()) {
...
}
...
Yukarıda işe almak edemedi formu örneği ibraz asla .
/**
* @ParamConverter("guest", converter="fos_rest.request_body")
*/
public function cpostAction(Guest $guest)
{
$violations = $this->getValidator()->validate($guest);
if ($violations->count()) {
return $this->view($violations, Codes::HTTP_BAD_REQUEST);
}
$this->persistAndFlush($guest);
return ....;
}
-
: -
ParamConverter
kullanılmasına göre Formu Bileşeni kullanmanın bir avantajı var mı
-
burada fikir
Teşekkürler!
Belki de [bu] (https://www.cloudways.com/blog/rest-api-in-symfony-3-1/) makalesi size yardımcı olabilir. –
Benim görüşüme göre fos_rest yapılandırmanızla ilgili. Burada paylaşır mısınız? –