[英]Symfony3.4: Attempted to call an undefined method named “getParameter” of class “Symfony\Component\DependencyInjection\ServiceLocator”
在 Symfony3.4 中,支持自動布線時出現以下錯誤。
即使移除容器也會出現以下錯誤,只需更改 class。
由於另一個錯誤,我將controller更改為抽象controller,所以我想盡可能使用抽象controller。
有什么我忘記了嗎?
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".
Controller.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;
}
服務.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']
正如 Vyctorya 建議的那樣,我將代碼修改如下,代碼消失了。
Controller.php
/**
* @var array
*/
private $keepRequestStatus;
public function __construct(array $keepRequestStatus)
{
$this->keepRequestStatus = $keepRequestStatus;
}
private function getKeepRequestSummary(KeepRequestService $keepRequestService)
{
$summary = array();
foreach (array_keys($this->keepRequestStatus) as $status) {
$params = array('status' => $status);
$summary[$status] = $keepRequestService->countKeepRequestBySearchParams($params);
}
return $summary;
}
服務.yml
services:
_defaults:
autowire: true
autoconfigure: true
public: false
bind:
$keepRequestStatus: '%keep_request_status%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.