2016-04-12 41 views
-1

我正在關注這個Drupal 8 module development 101教程。 YouTube視頻中介於37:15至45:14之間。我一直得到這個錯誤:如何在創建服務時解決「致命錯誤」?

致命錯誤:在C:\ Users \ myName \ Sites \ devdesktop \ drupal-8.0.5 \ modules \ dino_roar \ src \ Controller中找不到類'Drupal \ dino_roar \ DinoServices \ HelloGenerator' \ RoarController.php第11行

文件夾結構: enter image description here

HelloGenerator.php

<?php 

namespace Drupal\dino_roar\DinoServices; 

class HelloGenerator 
{ 
    public function getHello($count){ 
     return "Gotten Hello ".$count; 
    } 
} 

RoarController.php

<?php 

namespace Drupal\dino_roar\Controller; 

//use Drupal\dino_roar\DinoServices\HelloGenerator; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class RoarController extends Controller 
{ 
    public function roar($count){ 
     //$helloGenerator = new HelloGenerator(); 
     $helloGenerator = $this->get('dino_roar.hello_generator'); 
     $hello = $helloGenerator->getHello($count); 
     return new Response($hello); 

     //return new Response("Hello World ".$count); 
    } 
} 

dino_roar.info.yml

name: Dino ROAR 
type: module 
description: "ROAR at you" 
package: Custom 
core: 8.x 

dino_roar.routing.yml

dino_says: 
    path: /dino/says/{count} 
    defaults: 
     _controller: '\Drupal\dino_roar\Controller\RoarController::roar' 
    requirements: 
     _permission: 'access content' 

dino_roar.services.yml

services: 
    dino_roar.hello_generator: 
     class: Drupal\dino_roar\DinoServices\HelloGenerator 

致命錯誤指向這行代碼在RoarController.php文件:$ helloGenerator = new HelloGenerator();

這是Symfony版本。我在這個窗口中找不到1,2或3。

enter image description here

回答

1

首先,你RoarController類需要延伸 Controller類

class RoarController 

use Symfony\Bundle\FrameworkBundle\Controller\Controller 

class RoarController extends Controller 

編輯

OK現在改變

public function roar($count){ 
    $helloGenerator = new HelloGenerator(); 
    $hello = $helloGenerator->getHello($count); 
    return new Response($hello); 

    //return new Response("Hello World ".$count); 
} 

public function roar($count){ 
    $helloGenerator = $this->get('dino_roar.hello_generator'); 
    $hello = $helloGenerator->getHello($count); 
    return new Response($hello); 

    //return new Response("Hello World ".$count); 
} 

你不知道如何使用服務,爲什麼我請你閱讀本http://symfony.com/doc/current/book/service_container.html#creating-configuring-services-in-the-container

+0

只需更新我的RoarController爲你建議和我仍然得到同樣的錯誤。 – Charlie123

+0

謝謝!我會看看閱讀;然而,我剛剛嘗試了你的新的編輯,它仍然無法正常工作..同樣的錯誤。我不確定我做了哪些不同的事情,因爲我在視頻中關注的YouTube教程工作得很好。 – Charlie123

+0

完全相同的錯誤? –

相關問題