我的问题是:如何在不使用依赖注入的情况下在我的类ContainsExampleValidator
中传递会话。
我想要的是在使用自定义验证时在字段的参数中给出注释。
这是我的代码:
在services.yml:
app.validator_constraints.contains_example_validator:
class: AppBundle\Validator\Constraints\ContainsExampleValidator
arguments: ['@doctrine.orm.default_entity_manager', '@session']
tags:
- { name: validator.constraint_validator }
在约束类中:
namespace AppBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
/**
* @Annotation
*/
class ContainsExample extends Constraint
{
public $message = 'Customize my default message';
public function validatedBy()
{
return get_class($this).'Validator';
}
}
在我的ContainsExampleValidator中:
<?php
namespace AppBundle\Validator\Constraints;
use Doctrine\ORM\EntityManager;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class ContainsExampleValidator extends ConstraintValidator
{
/**
* @var EntityManager
*/
protected $em;
protected $session;
public function __construct(EntityManager $entityManager, Session $session)
{
$this->em = $entityManager;
$this->session = $session;
}
}
在我的实体中:
<?php
namespace AppBundle\Entity;
use Symfony\Component\Validator\Constraints as Assert;
use AppBundle\Validator\Constraints\ContainsExample;
class Entity
{
/**
* @ContainsExample(message="customize my message")
*/
protected $myfield;
你能在会话注释验证中给出一个参数吗?
有什么想法吗?
答案 0 :(得分:0)
查看UIElement
:https://github.com/schmittjoh/JMSDiExtraBundle。它包含了很多开发者生活中的好东西。
您正在寻找的可能是:http://jmsyst.com/bundles/JMSDiExtraBundle/master/annotations#inject