Пользовательский модуль Drupal-8 не появляется

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

Я попытался получить доступ к модулю, введя URL-адрес, например, http://localhost/drupal8/admin/kalvis/Kalvis/Drupal и http://localhost/drupal8/kalvis/Kalvis/Drupal, но по-прежнему испытывает ту же проблему.

Я использую Drupal 8.0.0 beta10, установленный на localhost (WAMP)

Теги:
drupal
drupal-8
drupal-modules

1 ответ

1
Лучший ответ

В файле yuting маршрутизации добавьте одиночные кавычки вокруг значения для вашего пути. Также удалите знак $ из двух параметров.

Начиная с бета-версии 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); рендеринга return array('#markup' => $message);

  • 0
    Спасибо, сейчас работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню