每个人。 这里也有类似的问题,但是答案不能解决我的错误。
我正在尝试在实体上使用Symfony 4.3自动验证,但这是行不通的。
我已取消注释validator.yaml
中的两行,并且在validation: {enable_annotations: true}
配置文件中启用了framework.yaml
,但仍然无法使用。
即使我从实体中添加或删除@Assert批注,验证也始终返回零长度的数组。
这是我的实体类:
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Company
*
* @ORM\Table(name="company")
* @ORM\Entity(repositoryClass="App\Repository\CompanyRepository")
*/
class Company
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="type", type="string", length=255, nullable=false)
* @Assert\NotNull
*/
public $type;
}
如您所见,type属性不能为null,但是验证无法按预期进行。就是这样:
$company = new Company();
$validator = Validation::createValidator();
$errors = $validator->validate($company);
此时,$ errors只是一个空数组。
是否需要任何其他配置? 有人有理论吗?