2015-05-21 126 views
1

我已成功在Drupal8站點上安裝了自己的模塊。我試圖通過輸入routing.yml文件中指定的路徑來訪問它,但我收到'頁面未找到'錯誤。我幾乎可以肯定,我的模塊是正確寫入的(我正在學習一個教程,其中成功訪問了相同的模塊)。什麼會導致我的問題,我該如何解決它?自定義Drupal-8模塊不出現

這裏是我的模塊文件: 1)kalvis.info.yml

name: 'Kalvis' 
description: 'My module' 
type: 'module' 
core: 8.x 

2)kalvis.routing.yml

kalvis.content: 
    path: /kalvis/{$from}/{$to} 
    defaults: 
     _content: 'Drupal\kalvis\Controller\kalvisController::content' 
     _title: 'My module' 
    requirements: 
    _permission: 'access content' 

3)kalvisController.php

<?php 

namespace Drupal\kalvis\Controller; 
use Drupal\Core\Controller\ControllerBase; 
class kalvisController extends ControllerBase{ 
    public function content($to, $from) 
    { 
     $message = $this->t('%from sends message %to', [ 
      '%from' => $from, 
      '%to' => $to, 
     ]); 
     return $message; 
    } 
} 
?> 

下面是我如何存儲這些模塊文件:

www/drupal8/modules/kalvis 
        kalvis.info.yml 
        kalvis.routing.yml 
        /src/Controller 
         kalvisController.php 

我試圖通過輸入URL(如http://localhost/drupal8/admin/kalvis/Kalvis/Drupalhttp://localhost/drupal8/kalvis/Kalvis/Drupal)來訪問模塊,但仍然遇到同樣的問題。

我使用Drupal的8.0.0 beta10安裝在本地主機(WAMP)

回答

1

在路由YML文件添加周圍您的路徑值的單引號。還要從2個參數中刪除$符號。

由於beta 4 Drupal 8你必須指定路徑爲_controller應該返回一個渲染數組。

kalvis.routing.yml文件:

kalvis.content: 
    path: '/kalvis/{from}/{to}' 
    defaults: 
    _controller: '\Drupal\kalvis\Controller\kalvisController::content' 
    _title: 'My module' 
    requirements: 
    _permission: 'access content' 

kalvisController.php,返回值更改爲渲染陣列return array('#markup' => $message);

+0

謝謝你,它的工作現在 –