Symfony2/Проверка – проверка NotBlank не работаетPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Symfony2/Проверка – проверка NotBlank не работает

Сообщение Anonymous »

У меня проблема с Assert/NotBlank().
Она просто не работает.
Каждый раз, когда я отправляю пустую форму, я вижу 500, SQLSTATE[23000]: нарушение ограничения целостности: 1048 Столбец «***» не может быть нулевым вместо какой-то ошибки.
У меня есть это в объекте:

Код: Выделить всё

use Symfony\Component\Validator\Constraints as Assert;

Код: Выделить всё

    ...
/**
* @var string
*
* @ORM\Column(name="text", type="text")
* @Assert\NotBlank()
*/
private $text;
...
ДОПОЛНИТЕЛЬНО:
Контроллер:

Контроллер, для добавления объявлений в базу данных.

Код: Выделить всё

public function insertAdAction($categoryId, Request $request)
{
$em = $this->getDoctrine()->getManager();
$category = $em->getRepository('DbBundle:Category')->findAll();
$ads = new Ads();
$form = $this->createForm(new InsertAdType(), $ads, array(
'categoryId' => $categoryId,
'name' => $request->cookies->get('name'),
'phone' => $request->cookies->get('phone'),
'email' => $request->cookies->get('email'),
'password' => $request->cookies->get('password'),

));
$form->handleRequest($request);
if ($form->isValid()) {
try {
$user = new User();
$validator = $this->get('validator');
$validator->validate($ads);
$byCategory = $em->getRepository('DbBundle:Category')->findOneBy(array('id' => $categoryId), array());
$categoryName = $byCategory->getName();
$phone = $form['phone']->getData();
$ads->setCategory($categoryName);
$ads->setCategoryUrl($this->get('WebPortalBundle')->seoUrl($categoryName));
$ads->setCountry($form['country']->getData());
$ads->setText(nl2br($form['text']->getData()));
$ads->setTitleUrl($this->get('WebPortalBundle')->seoUrl($form['title']->getData()));
$ads->setSubcategoryUrl($this->get('WebPortalBundle')->seoUrl($form['subcategory']->getData()));
$ads->setIp($request->getClientIp());
if (!$em->getRepository('DbBundle:User')->findOneBy(array('phone' => $form['phone']->getData()))) {
$user->setPhone($phone);
$em->persist($user);
}
$ads->setPath(implode(',', $this->uploadImg($form['file']->getData())));
$em->persist($ads);
$em->flush();
$response = new Response();
$time = time() + 31536000;
$response->headers->setCookie(new Cookie('name', $form['name']->getData(), $time));
$response->headers->setCookie(new Cookie('email', $form['email']->getData(), $time));
$response->headers->setCookie(new Cookie('phone', $form['phone']->getData(), $time));
$response->headers->setCookie(new Cookie('password', $form['password']->getData(), $time));
$response->send();
} catch (Exception $ex) {
throw new \ErrorException;
}
}
return $this->render('WebPortalBundle:Default/InsertAd:insertAd.html.twig', array('category' => $category, 'insertForm' => $form->createView()), $this->get('WebPortalBundle')->cache($request));
}
Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/321 ... oesnt-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»