繁体   English   中英

Zend Expressive Routes 仅返回 404

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM