Обновление: , поскольку я не получаю никаких ответов, я переписал весь пост, используя гораздо более простой пример. Надеюсь, это поможет выявить проблему.
У меня проблемы с проверкой формы. Я могу заставить утверждение NotBlank () работать, но Type () не работает для меня. Во-первых, вот код:
/* ...\Entity\LineItem.php */
<?php
namespace Rialto\ExperimentBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class LineItem
{
/**
* @var integer
* @Assert\NotBlank()
* @Assert\Type(type="integer")
*/
private $quantity = 0;
public function getQuantity()
{
return $this->quantity;
}
public function setQuantity($quantity)
{
$this->quantity = $quantity;
}
}
/* ...\Controller\DefaultController.php */
<?php
namespace Rialto\ExperimentBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Rialto\ExperimentBundle\Entity\LineItem;
class DefaultController extends Controller
{
public function indexAction()
{
return $this->testValidation();
}
private function testValidation()
{
$item = new LineItem();
$form = $this->createFormBuilder($item)
->add('quantity', 'integer')
->getForm();
$request = $this->getRequest();
if ( $request->getMethod() == 'POST') {
$form->bindRequest($request);
if ( $form->isValid() ) {
return new Response('Form is valid.');
}
}
return $this->render('RialtoCoreBundle:Form:basicForm.html.twig', array(
'form' => $form->createView(),
));
}
}
Когда я оставляю поле ввода пустым, я получаю сообщение об ошибке, как и ожидалось. Но когда я набираю «adsf» на входе, я вижу вывод «Форма верна». Я пробовал то же самое, используя проверку YAML и PHP. Кто-нибудь может увидеть, что я сделал неправильно?
Спасибо,
- Ян