Я успешно установил свой собственный модуль на сайте 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'
по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)
В файле 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'
по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);