1

Drupal8 サイトに独自のモジュールを正常にインストールしました。routing.yml ファイルで指定されたパスを入力してアクセスしようとしましたが、「ページが見つかりません」というエラーが発生します。私のモジュールが正しく書かれていることはほぼ確実です(同じモジュールが正常にアクセスされたチュートリアルに従っていました)。問題の原因と解決方法を教えてください。

ここに私のモジュールファイルがあります: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

http://localhost/drupal8/admin/kalvis/Kalvis/Drupalhttp://localhost/drupal8/kalvis/Kalvis/Drupalのような URL を入力してモジュールにアクセスしようとしましたが、それでも同じ問題が発生します。

localhost(WAMP) にインストールされた Drupal 8.0.0 beta10 を使用しています。

4

1 に答える 1

2

ルーティング yml ファイルで、パスの値を一重引用符で囲みます。$また、2 つのパラメーターから符号を削除します。

Drupal 8 のベータ 4以降_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);

于 2015-05-21T19:26:36.480 に答える