[英]Zend Expressive Routes only returning 404
我有一个可以工作的 Zend Expressive 应用程序,并从工作中抽出一些时间。 当返回工作时,我只收到来自所有路线的 404 错误。 我在别名路由下将应用程序设置为 function,它也工作得很好。 我假设配置中出了点问题,但我不知道是什么,也不知道去哪里找。 任何帮助表示赞赏。 我可以根据需要发布源代码,但我将从 routes.php 文件开始,因为它是目前最相关的。 谢谢!
我在 Zend Expressive 应用程序中使用 Zend Router。
<?php
declare(strict_types=1);
use Psr\Container\ContainerInterface;
use Zend\Expressive\Application;
use Zend\Expressive\MiddlewareFactory;
return function (Application $app, MiddlewareFactory $factory, ContainerInterface $container) : void {
$app->get('/ping', App\Handler\PingHandler::class, 'api.ping');
// Redirect to dashboard
$app->get('/', function() {
return new Zend\Diactoros\Response\RedirectResponse('/admin/dashboard');
},
'redirect'
);
// Dashboard
$app->route(
'/dashboard'
,
[
Zend\Expressive\Authentication\AuthenticationMiddleware::class,
App\Middleware\LoadUserMiddleware::class,
App\Middleware\LoadProjectsMiddleware::class,
App\Middleware\LoadInvoicesMiddleware::class,
App\Middleware\LoadSubscriptionsMiddleware::class,
App\Middleware\LoadServersMiddleware::class,
App\Handler\DashboardHandler::class,
],
[
'GET',
'POST'
],
'home'
);
// Login
$app->route(
'/login'
,
[
App\Handler\LoginPageHandler::class,
Zend\Expressive\Authentication\AuthenticationMiddleware::class,
App\Handler\LoginRedirectHandler::class,
],
[
'GET',
'POST',
],
'login'
);
// Projects
$app->route(
'/projects'
,
[
Zend\Expressive\Authentication\AuthenticationMiddleware::class,
App\Middleware\LoadUserMiddleware::class,
App\Middleware\LoadProjectsMiddleware::class,
App\Handler\ProjectsHandler::class,
],
[
'GET',
'POST',
],
'projects'
);
// Add Card
$app->route(
'/add-card'
,
[
Zend\Expressive\Authentication\AuthenticationMiddleware::class,
App\Middleware\LoadUserMiddleware::class,
App\Handler\AddCardHandler::class,
],
[
'GET',
'POST',
],
'add-card'
);
// Add Projects
$app->route(
'/projects/add'
,
[
Zend\Expressive\Authentication\AuthenticationMiddleware::class,
App\Middleware\LoadUserMiddleware::class,
App\Middleware\AdminAuthorizationMiddleware::class,
App\Middleware\LoadProjectsMiddleware::class,
App\Middleware\LoadFormDependenciesMiddleware::class,
App\Handler\AddProjectHandler::class,
],
[
'GET',
'POST',
],
'projects.add'
);
//List Servers
$app->route(
'/servers/list'
,
[
Zend\Expressive\Authentication\AuthenticationMiddleware::class,
App\Middleware\LoadUserMiddleware::class,
App\Middleware\AdminAuthorizationMiddleware::class,
App\Handler\Servers\ListServersHandler::class,
],
[
'GET',
'POST',
],
'servers.list'
);
// Logout
$app->get('/logout', function(\Psr\Http\Message\ServerRequestInterface $request) : \Psr\Http\Message\ResponseInterface {
$session = $request->getAttribute(\Zend\Expressive\Session\SessionMiddleware::SESSION_ATTRIBUTE);
if ($session->has(\Zend\Expressive\Authentication\UserInterface::class)) {
$session->clear();
}
return new Zend\Diactoros\Response\RedirectResponse('/admin/login');
},
'logout'
);
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.