首页 > 解决方案 > Symfony 4.3 验证不起作用 - 甚至自动

问题描述

每个人。这里发布了一个类似的问题,但答案并没有解决我的错误。

我正在尝试对实体使用 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 只是一个空数组。

是否需要任何额外的配置?有人有理论吗?

标签: phpvalidationsymfony4

解决方案


推荐阅读