首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$ form ->isSubmitted = false form post

$ form ->isSubmitted = false form post
EN

Stack Overflow用户
提问于 2021-03-06 11:15:07
回答 1查看 73关注 0票数 0

主计长:

代码语言:javascript
复制
/**
 * @Route("/charity/add", name="charity_add")
 * @Method({"POST"})
 * @param Request $request
 */
public function addAction(Request $request)
{
    $em = $this->getDoctrine()->getManager();

    $charity = new Charity();
    $form = $this->createFormBuilder($charity)
        ->add('name')
        ->add('url')
        ->add('stripeApiKey')
        ->add('text')
        ->getForm();

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        echo "isSubmitted and isValid"; exit();
    }

    if (!$form->isSubmitted()) {
        echo "Not submitted"; exit();
    }

    if (!$form->isValid()) {
        echo "Not valid"; exit();
    }
}

树枝模板:

代码语言:javascript
复制
<form name="new-charity-form" id="new-charity-form" method="post" action="{{ path('charity_add') }}">
        <label>Charity name <i class="fa fa-asterisk fa-1" aria-hidden="true"></i></label><br/>
        <input id="name" type="text" name="name" required="true"/><br/>

        <label>URL <i class="fa fa-asterisk fa-1" aria-hidden="true"></i></label><br/>
        <input id="url" type="text" name="url" required="true"/><br/>

        <label>Stripe API key <i class="fa fa-asterisk fa-1" aria-hidden="true"></i></label><br/>
        <input id="stripeApiKey" type="text" name="stripeApiKey" required="true"/><br/>

        <label>Coupon text <i class="fa fa-asterisk fa-1" aria-hidden="true"></i></label><br/>
        <textarea id="text" type="text" name="text" required="true"></textarea><br/>

        <div><b>!! Figure out image uploader/selector here !!</b></div><br/>


        <button type="button" onclick="window.location='{{ path('charities_list') }}'"><i class="fa fa-arrow-left"></i> Back</button>
        <button type="submit"><i class="fa fa-plus"></i> Create</button>
    </form>

使用浏览器检查工具,我可以看到POST请求,其中nameurlstripeApiKeytext都包含有效的文本数据- name=a&url=b&stripeApiKey=c&text=d

但是浏览器在提交时输出Not submitted

我已经简化了上面的表单以删除任何约束,比如用于测试的TextType,但是即使有数据验证,我也会得到相同的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-13 14:10:36

这个问题是由getName()返回一个值引起的。

如果我从getName()返回一个空字符串,那么问题就解决了

也许有人可以详细说明为什么会这样:

窗体在使用以下内容时进行验证:

代码语言:javascript
复制
/**
 * @return string
 */
public function getName()
{
    return '';
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66505049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档