自定义 Drupal-8 模块未出现
Custom Drupal-8 module doesn't appear
我已经在 Drupal8 站点上成功安装了自己的模块。我试图通过输入 routing.yml 文件中指定的路径来访问它,但出现 'Page not Found' 错误。我几乎可以肯定我的模块编写正确(我正在学习一个教程,其中成功访问了相同的模块)。什么可能导致我的问题,我该如何解决?
这是我的模块文件:
1)kalvis.info.yml
name: 'Kalvis'
description: 'My module'
type: 'module'
core: 8.x
2)卡尔维斯.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 and http://localhost/drupal8/kalvis/Kalvis/Drupal 来访问模块,但仍然遇到同样的问题。
我正在使用安装在本地主机 (WAMP) 上的 Drupal 8.0.0 beta10
在路由 yml 文件中,在路径值两边添加单引号。还要从 2 个参数中删除 $
符号。
从 Drupal 8 的 beta 4 开始,您必须将路径指定为 _controller
,这应该 return 渲染数组。
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 值更改为渲染数组 return array('#markup' => $message);
我已经在 Drupal8 站点上成功安装了自己的模块。我试图通过输入 routing.yml 文件中指定的路径来访问它,但出现 'Page not Found' 错误。我几乎可以肯定我的模块编写正确(我正在学习一个教程,其中成功访问了相同的模块)。什么可能导致我的问题,我该如何解决?
这是我的模块文件: 1)kalvis.info.yml
name: 'Kalvis'
description: 'My module'
type: 'module'
core: 8.x
2)卡尔维斯.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 and http://localhost/drupal8/kalvis/Kalvis/Drupal 来访问模块,但仍然遇到同样的问题。
我正在使用安装在本地主机 (WAMP) 上的 Drupal 8.0.0 beta10
在路由 yml 文件中,在路径值两边添加单引号。还要从 2 个参数中删除 $
符号。
从 Drupal 8 的 beta 4 开始,您必须将路径指定为 _controller
,这应该 return 渲染数组。
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 值更改为渲染数组 return array('#markup' => $message);