Symfony 3 - 必须是FormFactoryInterface的一个实例,给出FormFactory的实例

时间:2016-06-25 16:26:02

标签: php forms symfony service

我想从服务中获取我的表格,但无论我做什么,它都行不通。

我在YML中有服务

services:      
  myservice:
     class: AppBundle\Service\Myservice
     arguments: ["@doctrine.orm.entity_manager","@form.factory"]

然后在AppBudle \ Service \ Myserivce.php中:

namespace AppBundle\Service;

use Doctrine\ORM\EntityManager;

use Symfony\Component\Form\FormBuilderInterface;

use Symfony\Component\Form\Extension\Core\Type\TextType;

class Myservice {

protected $em;
protected $formFactory; 

public function __construct(EntityManager $entityManager, FormFactoryInterface $formFactory) {
    $this->em = $entityManager;
    $this->formFactory = $formFactory;
    }   


// GENERATE CALCULATOR FORM
public function generateCalculatorForm() {  


     return  'ffffsdsd';
    }

}

但我得到了

  

捕获致命错误:传递给AppBundle \ Service \ Myservice :: __ construct()的参数2必须是AppBundle \ Service \ FormFactoryInterface的实例,给出Symfony \ Component \ Form \ FormFactory的实例,在D:\ xamp \中调用第409行的htdocs \ icp \ var \ cache \ dev \ appDevDebugProjectContainer.php并定义了

这里有什么问题?我已经尝试了几乎所有我在网络上找到的东西,但是无法让它发挥作用。

1 个答案:

答案 0 :(得分:1)

http://php.net/manual/en/language.namespaces.php

如果名称/接口名称的名称未满,则它将以当前名称空间名称作为前缀。

设置FormFactoryInterface的全名或将其添加到use语句

use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormFactoryInterface;