我正在关注这个Drupal 8 module development 101教程。 YouTube视频的时间是37:15到45:14之间。我一直收到这个错误:
致命错误:第11行的C:\ Users \ myName \ Sites \ devdesktop \ drupal-8.0.5 \ modules \ dino_roar \ src \ Controller \ RoarController.php中找不到类'Drupal \ dino_roar \ DinoServices \ HelloGenerator'
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。
答案 0 :(得分:1)
首先,你的RoarController类需要扩展 Controller类
{{vm.$rootScope.currentPage}}
到
class RoarController
修改
好了,现在改变
use Symfony\Bundle\FrameworkBundle\Controller\Controller
class RoarController extends Controller
到
public function roar($count){
$helloGenerator = new HelloGenerator();
$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