ZF3: 路由无法匹配请求的 URL
ZF3: The requested URL could not be matched by routing
我是第一次设置 ZF3 项目,我似乎无法让路由工作。在我的主页上,我收到 404:“路由无法匹配请求的 URL。”
这是我的目录结构:
我的Module.php:
<?php
namespace Home;
use Laminas\ModuleManager\Feature\AutoloaderProviderInterface;
use Laminas\ModuleManager\Feature\ConfigProviderInterface;
class Module implements AutoloaderProviderInterface, ConfigProviderInterface
{
public function getAutoloaderConfig()
{
return [
'Zend\Loader\StandardAutoloader' => [
'namespaces' => [
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
],
],
];
}
public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
}
}
以及违规路线 ('home'
),在 module.config.php:
<?php
namespace Home;
return [
'router' => [
'routes' => [
'home' => [
'type' => 'Literal',
'options' => [
'route' => '/',
'defaults' => [
'controller' => Controller\SkeletonController::class,
'action' => 'index',
],
],
'may_terminate' => true,
'child_routes' => [
// You can place additional routes that match under the
// route defined above here.
],
],
],
],
... // Other stuff
]
在使用两个模块(Home 和 Admin)时,我在两个模块中都定义了一个 'home'
路由。我认为 'home'
只是一个神奇的字符串,所有模块都需要在其路由的顶层使用一个字符串,而实际上 所有模块中的所有顶层路由都必须唯一命名.
我将 Admin 的顶级路由重命名为 'admin'
,路由器能够按预期将我发送到 Home 的顶级。
我是第一次设置 ZF3 项目,我似乎无法让路由工作。在我的主页上,我收到 404:“路由无法匹配请求的 URL。”
这是我的目录结构:
我的Module.php:
<?php
namespace Home;
use Laminas\ModuleManager\Feature\AutoloaderProviderInterface;
use Laminas\ModuleManager\Feature\ConfigProviderInterface;
class Module implements AutoloaderProviderInterface, ConfigProviderInterface
{
public function getAutoloaderConfig()
{
return [
'Zend\Loader\StandardAutoloader' => [
'namespaces' => [
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
],
],
];
}
public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
}
}
以及违规路线 ('home'
),在 module.config.php:
<?php
namespace Home;
return [
'router' => [
'routes' => [
'home' => [
'type' => 'Literal',
'options' => [
'route' => '/',
'defaults' => [
'controller' => Controller\SkeletonController::class,
'action' => 'index',
],
],
'may_terminate' => true,
'child_routes' => [
// You can place additional routes that match under the
// route defined above here.
],
],
],
],
... // Other stuff
]
在使用两个模块(Home 和 Admin)时,我在两个模块中都定义了一个 'home'
路由。我认为 'home'
只是一个神奇的字符串,所有模块都需要在其路由的顶层使用一个字符串,而实际上 所有模块中的所有顶层路由都必须唯一命名.
我将 Admin 的顶级路由重命名为 'admin'
,路由器能够按预期将我发送到 Home 的顶级。