バリデーター サービスがバリデーターに提供されていません。「警告: My\Bundle\Validator\Constraints\MyCustomValidator::__construct() の引数 1 がありません...」というエラーが表示されます。
ここに私のservices.ymlがあります
// My\Bundle\Resources\config\services.yml
services:
my.validator.service:
class: My\Bundle\Validator\Constraints\MyCustomValidator
arguments: [ @doctrine.orm.entity_manager ]
ここに私のバリデータークラスがあります:
// My\Bundle\Validator\Constraints\MyCustomValidator
namespace My\Bundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\DependencyInjection\ContainerInterface as Container;
use Doctrine\ORM\EntityManager;
class MyCustomValidator extends ConstraintValidator
{
private $em;
public function __construct($em)
{
$this->em = $em;
}
public function validate($value, Constraint $constraint)
{
// Do something
}
}
ここに私のvalidation.ymlがあります
// My\Bundle\Resources\config\validation.yml
My\Bundle\Entity\Page:
properties:
name:
- NotBlank: ~
- My\Bundle\Validator\Constraints\MyCustom: ~
ここに私の制約クラスがあります
namespace My\Bundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
class MyCustom extends Constraint
{
public $message = 'Something is wrong with "%string%".';
public function validatedBy()
{
return get_class($this) . 'Validator';
}
}
誰かがこれで私を助けることができれば、私は非常に感謝しています.
引数名も「@doctrine.orm.default_entity_manager」に変更しようとしましたが、うまくいきませんでした。