【发布时间】:2021-02-09 03:22:47
【问题描述】:
在 Symfony3.4 中,支持自动布线时出现以下错误。
即使移除容器也会出现以下错误,只是更改类。
由于另一个错误,我将控制器更改为抽象控制器,所以我想尽可能使用抽象控制器。
有什么我忘记了吗?
https://symfony.com/doc/3.4/service_container/3.3-di-changes.html
错误
Attempted to call an undefined method named "getParameter" of class "Symfony\Component\DependencyInjection\ServiceLocator".
控制器.php
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class DefaultController extends AbstractController
{
/**
* @param KeepRequestService $keepRequestService
* @return array
*/
private function getKeepRequestSummary(KeepRequestService $keepRequestService): array
{
$summary = array();
//Error line
foreach (array_keys($this->container->getParameter('keep_request_status')) as $status) {
$params = array('status' => $status);
$summary[$status] = $keepRequestService->countKeepRequestBySearchParams($params);
}
return $summary;
}
services.yml
_defaults:
autowire: true
autoconfigure: true
public: false
App\:
resource: '../../src/*'
exclude: '../../src/{Ahi/Sp/AdminBundle/Model/Entity, Ahi/Sp/AdminBundle/Model/Repository, Ahi/Sp/AdminBundle/Resources/public/uploadify, Ahi/Sp/AdminBundle/Ahi/Sp/PublicBundle/ }'
App\Ahi\Sp\AdminBundle\Controller\:
resource: '../../src/Ahi/Sp/AdminBundle/Controller'
public: true
tags: ['controller.service_arguments']
【问题讨论】:
-
您尝试过吗:stackoverflow.com/a/49084402/8411841 注入和使用容器现在是不好的做法。应该注入参数和服务。
-
@Vyctorya 感谢您的评论。多亏了你,我才能解决它。