gpt4 book ai didi

php - Symfony 3.4 使用 RESTful API 插入数据,无需捆绑

转载 作者:行者123 更新时间:2023-12-02 01:54:42 24 4
gpt4 key购买 nike

我在将数据插入数据库时​​遇到问题。

我可以使用此代码插入:

$quote->setSource($data['quote_form[source]']);
$quote->setQuote($data['quote_form[quote]']);

我想要的是插入数据而不添加特定字段。

问题:

  1. 我的第一个代码中的问题是,如果我要添加一个新字段,我需要一遍又一遍地添加一组新字段。
  2. 当我添加 if ($form->isSubscribed() && $form->isValid()) 时,它不会进入 if 条件。

这是我在 Controller 中的函数的代码:

    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

最佳答案

您的表单似乎无效。表单对象中有方法

$form->getErrors();

它返回验证错误的集合。 symfony profiler 中还有与表单验证错误相关的部分: screenshot

关于php - Symfony 3.4 使用 RESTful API 插入数据,无需捆绑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58798843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com