我想为我的项目创建HelperController。我生成一个带有doctrine的控制器:generate:controller,我需要在其中使用实体管理器。
我放弃了services.yml,但是它给出了这样的错误:
const data = [[{"option":"foo0","value":"bar0"}],[{"option":"foo1","value":"bar1"}],[{"option":"foo2","value":"bar2"}],[{"option":"foo3","value":"bar3"}]]
const result = [].concat(...data)
console.log(result)
我的控制器代码:
Argument 1 passed to CampingBundle\Controller\HelperController::__construct() must be an instance of Doctrine\ORM\EntityManager, none given ...
我的服务.yml:
namespace CampingBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Doctrine\ORM\EntityManager;
class HelperController extends Controller
{
protected $manager;
public function __construct(EntityManager $manager)
{
$this->manager = $manager;
}
为什么它不起作用? Shoudl我清除缓存或其他什么或者定义有什么问题吗?
谢谢
答案 0 :(得分:0)
尝试使用EntityManagerInterface并删除extends Controller
。
如果需要CAS(控制器作为服务),请检查此link。
将protected $manager;
更改为private $manager;
namespace CampingBundle\Controller;
use Doctrine\ORM\EntityManagerInterface;
class HelperController
{
/**
* @var EntityManagerInterface $entityManager
*/
private $entityManager;
/**
* @param $entityManager
*/
public function __construct(EntityManagerInterface $entityManager)
{
$this->entityManager = $entityManager;
}
}
答案 1 :(得分:0)
我将把我的两分钱留在这里,因为我遇到了同样的问题,并通过向服务中添加tags
来解决它。
something.validate.some_service:
class: Path\To\Some\Validator
arguments:
- '@doctrine.orm.entity_manager'
tags:
- { name: validator.constraint_validator, alias: some_validator_alias }