Php 小枝模板上的Symfony表单验证和错误
一段时间以来,我一直在为这个问题寻找解决方案。我在Stackoverflow上发现了很多问题,并尝试了几乎所有的问题,但这对我的问题没有帮助 我在控制器和细枝视图中有一个表单,它将呈现该表单。我还有一个用于验证的实体Php 小枝模板上的Symfony表单验证和错误,php,forms,symfony,twig,Php,Forms,Symfony,Twig,一段时间以来,我一直在为这个问题寻找解决方案。我在Stackoverflow上发现了很多问题,并尝试了几乎所有的问题,但这对我的问题没有帮助 我在控制器和细枝视图中有一个表单,它将呈现该表单。我还有一个用于验证的实体 /** * @Route("/buy", name="buy") */ public function buyAction(Request $request) { $priceArray = $this->container->getParameter('p
/**
* @Route("/buy", name="buy")
*/
public function buyAction(Request $request)
{
$priceArray = $this->container->getParameter('price');
$options = [];
foreach ($priceArray as $billingCycle => $array) {
$options[$array['description'].' $'.$array['price']] = $billingCycle;
}
$orderData = new OrderData();
// $orderData->setNickName('Enter Server NickName');
$form = $this->createFormBuilder($orderData)
->add(
'billingCycle',
ChoiceType::class,
array(
'choices' => $options,
'choices_as_values' => true,
'expanded' => true,
'label' => 'Select Billing Cycle',
)
)
->add('nickName', TextType::class, ['label' => 'Nick name for your server'])
->add('ipAddress', TextType::class, ['label' => 'IP Address of your server'])
->add(
'save',
SubmitType::class,
array(
'label' => 'Proceed to Payment',
'attr' => [
'formnovalidate' => 'formnovalidate',
],
)
)
->getForm();
$options = [
'priceArray' => $priceArray,
'form' => $form->createView(),
];
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
die('form is valid');
} else {
$errors = $form->getErrors(true, false);
dump($errors);
exit;
}
}
return $this->render('default/buy.html.twig', $options);
}
AppBundle/Entity/OrderData.php
<?php
namespace AppBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class OrderData
{
/**
* @Assert\NotBlank(message="missing_billingcycle");
*/
protected $billingCycle;
/**
* @Assert\NotBlank(message="missing_nickname")
*/
protected $nickName;
/**
* @Assert\NotBlank(message="missing_ipaddress");
* @Assert\Ip(message="invalid_ipaddress");
*/
protected $ipAddress;
/**
* @return mixed
*/
public function getBillingCycle()
{
return $this->billingCycle;
}
/**
* @param mixed $billingCycle
*/
public function setBillingCycle($billingCycle)
{
$this->billingCycle = $billingCycle;
}
/**
* @return mixed
*/
public function getIpAddress()
{
return $this->ipAddress;
}
/**
* @param mixed $ipAddress
*/
public function setIpAddress($ipAddress)
{
$this->ipAddress = $ipAddress;
}
/**
* @return mixed
*/
public function getNickName()
{
return $this->nickName;
}
/**
* @param mixed $nickName
*/
public function setNickName($nickName)
{
$this->nickName = $nickName;
}
}
这显示了已翻译的验证错误。然而,我不太确定我在这里遗漏了什么,因此它没有显示在视图上经过大量挖掘,我找到了我错的地方
$options = [
'priceArray' => $priceArray,
'form' => $form->createView(),
];
$form->handleRequest($request);
“表单”赋值必须在HandlerRequest之后
$form->handleRequest($request);
$options = [
'priceArray' => $priceArray,
'form' => $form->createView(),
];
经过大量的挖掘,我发现我错在哪里了
$options = [
'priceArray' => $priceArray,
'form' => $form->createView(),
];
$form->handleRequest($request);
“表单”赋值必须在HandlerRequest之后
$form->handleRequest($request);
$options = [
'priceArray' => $priceArray,
'form' => $form->createView(),
];
非常感谢。我们有完全相同的问题谢谢你。我们遇到了完全相同的问题