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

Я успешно установил свой собственный модуль на сайте 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: // локальный / drupal8 / администратор / Kalvis / Kalvis / Drupal а также HTTP: // локальный / drupal8 / Kalvis / Kalvis / Drupal но все равно получаю такую ​​же проблему.

Я использую Drupal 8.0.0 beta10, установленную на локальном хосте (WAMP)

1

Решение

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

поскольку бета 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);

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]