symfony - 如何在 Symfony 中注入(inject)验证器

标签 symfony dependency-injection

有人可以告诉我如何使用依赖注入(inject)将验证器注入(inject)到常规类中。

在我的 Controller 中,我有:

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Form;

class FormController extends Controller {
    public function indexAction()
    {
        $form = new Form();
        $email = $request->request->get('email');
        $valid = $form->isValid($email);
    }
}

我想使用这个自定义类 - 但我需要它可以访问验证器。
class Form {
    public function isValid($value)
    {
        // This is where I fail
        $validator = $this->get('validator'); 
        ... etc
    }
}

最佳答案

在 Symfony 4+ 中,如果您使用默认配置(启用自动连接),最简单的方法是注入(inject) ValidatorInterface .

例如:

<?php

use Symfony\Component\Validator\Validator\ValidatorInterface;

class MySuperClass
{
    private $validator;

    public function __construct(
        ValidatorInterface $validator
    ) {
        $this->validator = $validator;
    }

关于symfony - 如何在 Symfony 中注入(inject)验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12462770/

相关文章:

php - 使用原则保存多条记录并获取每条记录的 ID

c# - 如何修复 "Object reference not set to an instance of an object"?

dependency-injection - 使用 Ninject 并绑定(bind)默认实现,同时避免可怕的 Service Locator 反模式

api - 如何向外部 API 发送请求

javascript - 如何访问symfony2中另一个html.twig文件中的javascript函数?

android - 在 Android 上使用 DI 的具体好处是什么?

java - 在运行时更改 Guice 绑定(bind)

Java从一个war文件注入(inject)到另一个war文件

symfony - Nginx symfony "invalid number of arguments in "try_files“指令”

mysql - Doctrine 默认值与空插入