簡體   English   中英

Symfony 3.4 使用 RESTful 插入數據 API 無捆綁

[英]Symfony 3.4 Insert data using RESTful API without bundle

我在將數據插入數據庫時遇到問題。

我可以使用以下代碼插入:

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

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

問題:

  1. 我的第一個代碼中的問題是,如果我要添加一個新字段,我需要一遍又一遍地添加一個新字段。
  2. 當我添加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

看起來您的表格無效。 object表格中有方法

$form->getErrors();

它返回驗證錯誤的集合。 symfony 分析器中還有與表單驗證錯誤相關的部分:截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM