[英]Symfony 3.4 Insert data using RESTful API without bundle
我在將數據插入數據庫時遇到問題。
我可以使用以下代碼插入:
$quote->setSource($data['quote_form[source]']);
$quote->setQuote($data['quote_form[quote]']);
我想要的是插入數據而不添加特定字段。
問題:
if ($form->isSubmitted() && $form->isValid())
時,它不會進入 if 條件。這是我在 controller 中的 function 的代碼:
public function createAction(Request $request)
{
if ($request->getMethod() === 'POST') {
$data = json_decode($request->getContent(), true);
$quote = new Quote();
$form = $this->createForm(QuoteForm::class, $quote)->submit($data);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
// Add our quote to Doctrine so that it can be saved
$em->persist($quote);
// Save our quote
$em->flush();
} else {
echo 'not valid';die();
}
return new Response('It\'s probably been saved', 201);
} else {
throw $this->createNotFoundException();
}
}
對於 Html Ajax:
function serializeFormJSON(formArray) {
var returnArray = {};
for (var i = 0; i < formArray.length; i++) {
returnArray[formArray[i]['name']] = formArray[i]['value'];
}
return returnArray;
}
var form = $('form[name=quote_form]');
form.submit(function (e) {
console.log(JSON.stringify(serializeFormJSON($(this).serializeArray())));
e.preventDefault();
$.ajax({
type: 'POST',
url: $(this).attr('action'),
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(serializeFormJSON($(this).serializeArray())),
dataType: 'json',
success: function(response) {
console.log(response);
},
});
});
我也明白了這里的想法
-> https://andrewadcock.com/a-simple-restful-api-tutorial-with-symfony-3/
-> https://symfonycasts.com/screencast/symfony-rest/form-post
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.