2017-02-10 6 views
0

Symfony 2.xバージョンのサービスに問題があります。私はそのはSymfony 2.Xサービススロー例外

FatalErrorException: Error: Call to a member function has() on a non-object in C:\wamp\www\skerp8\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Controller\Controller.php line 202 

in C:\wamp\www\skerp8\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Controller\Controller.php line 202 
at ErrorHandler->handleFatalError() in C:\wamp\www\skerp8\vendor\symfony\symfony\src\Symfony\Component\Debug\ErrorHandler.php line 219 
at ErrorHandler->handleFatal() in C:\wamp\www\skerp8\vendor\symfony\symfony\src\Symfony\Component\Debug\ErrorHandler.php line 0 
at Controller->getDoctrine() in C:\wamp\www\skerp8\src\Skerp\ProductionBundle\Controller\RouteCardController.php line 3030 
at RouteCardController->getRouteCardSummaryDetailsByRoutecardIdAction() in C:\wamp\www\skerp8\src\Skerp\InventoryBundle\Controller\BlockInventoryController.php line 467 
at BlockInventoryController->updateAction() in C:\wamp\www\skerp8\app\bootstrap.php.cache line 2951 
at ??call_user_func_array:{C:\wamp\www\skerp8\app\bootstrap.php.cache:2951}() in C:\wamp\www\skerp8\app\bootstrap.php.cache line 2951 
at HttpKernel->handleRaw() in C:\wamp\www\skerp8\app\bootstrap.php.cache line 2923 
at HttpKernel->handle() in C:\wamp\www\skerp8\app\bootstrap.php.cache line 3062 
at ContainerAwareHttpKernel->handle() in C:\wamp\www\skerp8\app\bootstrap.php.cache line 2305 
at Kernel->handle() in C:\wamp\www\skerp8\web\app_dev.php line 28 
at ??{main}() in C:\wamp\www\skerp8\web\app_dev.php line 0 

私に次のエラーを与えるサービスを使用しようとすると、次は私が次のコードでBlockInventoryController.phpで上記コントローラを呼び出しています私のconfig.ymlコード

services: 
    RouteCardControllerService: 
     class: Skerp\ProductionBundle\Controller\RouteCardController 
     arguments: 
      container: "@service_container" 

です。それがエラーを投げているのはなぜ

$routecardControllerService = $this->get('RouteCardControllerService'); 
$routecardControllerService->updateRouteCardSummaryReportDetailsByRoutecardIdAction($routecardid) 

RouteCardController.phpで

public function getRouteCardSummaryDetailsByRoutecardIdAction($routecardid){ 
    //Do something and return array of data 
} 

public function updateRouteCardSummaryReportDetailsByRoutecardIdAction($routecardid) { 
    $routecardSummaryDetails = $this->getRouteCardSummaryDetailsByRoutecardIdAction($routecardid); 
    //Do Something... 
} 

を提出。私は他のコントローラのコントローラのメソッドにアクセスできるように、どのようにサービスを実装するべきですか?

+0

スタックトレースを貼り付けてください。 –

+0

大丈夫です。 – Prabhanjan

+0

symfonyログの最後のレコードは何ですか? (あなたの環境にdev.logまたはprod.log accordind) –

答えて

0

これはコードである:Symfonyコントローラで

if (!$this->container->has('doctrine')) { 

RouteCardControllerコントローラに正しくcontainerサービスを設定していません。

containerサービスを設定する場所にコントローラの一部を貼り付けてください。コントローラはContainerAwareInterfaceを実装していますか?

注:実際に必要なサービスであるcontainerを注入することは実際にはお勧めできません。

+1

彼のservices.ymlファイルも混乱しています。 – Cerad

+0

@Kamil Adryjanek symfony2でサービスを作成する方法を教えてくれる私をリダイレクトできますか?私は初めてです。私は1つを作成する方法を取得していません。 – Prabhanjan

+0

あなたの場合、これは便利です:https://symfony.com/doc/current/controller/service.html –

関連する問題