У меня есть ситуации, когда ограничение проверки внутри классов сущностей игнорируются ...Symfony2/3 Дети Entity Constraint Утверждайте игнорировало
Это одна не работает (который является детьми ActivityField Entity):
<?php
namespace XXX\ActivityFieldsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use XXX\DatabaseBundle\Entity\AbstractEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="XXX\ActivityFieldsBundle\Repository\ActivityFieldLanguagesRepository")
* @ORM\HasLifecycleCallbacks
* @ORM\Table(name="activity_field_languages")
*/
class ActivityFieldLanguages extends AbstractEntity
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="name", type="text")
* @Assert\NotBlank() ----> !!! this one here !!!
*/
protected $name;
в то время как это один (который является автономным, не имеет никакого отношения к другим лицам) работы:
<?php
namespace XXX\LanguagesBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use XXX\DatabaseBundle\Entity\AbstractEntity;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use XXX\CommonBundle\Validator\Constraints as SiteAssert;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass="XXX\LanguagesBundle\Repository\LanguagesRepository")
* @ORM\HasLifecycleCallbacks
* @ORM\Table(name="languages")
*
* @UniqueEntity(fields="name")
* @UniqueEntity(fields="iso")
*/
class Languages extends AbstractEntity
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="name", type="string", unique=true)
* @Assert\NotBlank() -----> this one here !!!
* @Assert\Length(
* min=2,
* minMessage="validator.minimum.2.characters"
*)
*/
protected $name;
Если я добавить ограничение в FormType то все нормально и работает, но я не хотите иметь это и хранить все в файле Entity в виде аннотации. В моей конфиге у меня есть
framework:
validation: { enable_annotations: true }
В аннотацию все ок , В каком режиме вы работаете (prod, dev)? Попробуйте очистить кеш (аннотация будет сохранена после полного анализа)? – ZhukV
Я в dev env. Я просто очистил (жесткий удалить) кеш, перезапустил сервер, очистил redis все тот же ... может быть, какой-то конфиг пропал? хотя Языки работает нормально ... –
Является ли сущность частью другого родительского объекта? В противном случае вам нужно добавить '@Assert \ Valid()' в аннотацию родительских отношений. – Rvanlaak