$form->isSubmitted = false 表单 post
$form->isSubmitted = false upon form post
控制器:
/**
* @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();
}
}
Twig 模板:
<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 请求,其中 name
、url
、stripeApiKey
和 text
都包含有效的文本数据- name=a&url=b&stripeApiKey=c&text=d
但是浏览器在提交时输出 Not submitted
我已经简化了上面的表格以删除任何限制,例如 TextType
用于测试目的,但即使进行了数据验证,我也得到了相同的结果
问题是由 getName() return输入一个值
引起的
如果我 return 来自 getName() 的空字符串,那么问题就解决了
也许有人可以添加有关原因的详细信息:
表单在使用时验证:
/**
* @return string
*/
public function getName()
{
return '';
}
控制器:
/**
* @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();
}
}
Twig 模板:
<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 请求,其中 name
、url
、stripeApiKey
和 text
都包含有效的文本数据- name=a&url=b&stripeApiKey=c&text=d
但是浏览器在提交时输出 Not submitted
我已经简化了上面的表格以删除任何限制,例如 TextType
用于测试目的,但即使进行了数据验证,我也得到了相同的结果
问题是由 getName() return输入一个值
引起的如果我 return 来自 getName() 的空字符串,那么问题就解决了
也许有人可以添加有关原因的详细信息:
表单在使用时验证:
/**
* @return string
*/
public function getName()
{
return '';
}