Drupal 8 routing.yml无法正常工作?

时间:2016-02-04 15:16:39

标签: drupal module controller routing yaml

我刚刚安装了Drupal并开始使用它,这个问题阻碍了我前进。在浏览了太多解决方案之后,我仍然无法找到解决方法。我按照Drupal网站中的步骤+许多其他人创建了一个自定义模块,但最终得到了一个" Page Not Found"登陆页面 - 页面仍然有Drupal的布局,但它没有读取我设置的控制器。

我的文件夹结构:

drupal
   /modules
     /custom
       /sam
       sam.routing.yml
       sam.info.yml
       sam.module
       /src
          /Controller
          SamController.php

sam.routing.yml :(我有点丢失了这个文件,但是我一直在使用空格来缩进而不是标签,因为我知道yml文件不喜欢标签,但我和感觉Drupal没有接受这个routing.yml文件。我为缩进做了2个空格)

sam:
  path: '/sam'
  defaults:
    _controller: 'Drupal\sam\Controller\SamController::build'
    _title: 'Sams Website'
  requirements:
    _permission: 'access content'

我的控制器:

<?php

namespace Drupal\sam\Controller;

use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;

class SamController extends ControllerBase  {

   public function build() {
      return array(
        '#markup' => t('Hello World'),
      );
   }
}

我已经检查了Apache中的错误日志,并没有真正得到任何有用的消息。我有什么遗失的吗?

1 个答案:

答案 0 :(得分:1)

指定完全限定的类名时,您需要初始\。只需将routing.yml调整为

即可
sam:
  path: '/sam'
  defaults:
    _controller: '\Drupal\sam\Controller\SamController::build'
    _title: 'Sams Website'
  requirements:
    _permission: 'access content'

否则它将无法构建路径,因为无法找到该类。