Php Phalcon微收集路径不匹配

Php Phalcon微收集路径不匹配,php,phalcon,Php,Phalcon,我试图创建一个新的,但我没有得到它的工作。在Url/todo/上,应调用控制器 index.php $di = new \Phalcon\Di\FactoryDefault; $di->set('url', function() { $url = new \Phalcon\Mvc\Url(); $url->setBaseUri('/'); return $url; }); $di->set('collections', function() {

我试图创建一个新的,但我没有得到它的工作。在Url/todo/上,应调用控制器

index.php

$di  = new \Phalcon\Di\FactoryDefault;

$di->set('url', function() {
    $url = new \Phalcon\Mvc\Url();
    $url->setBaseUri('/');

    return $url;
});

$di->set('collections', function() {
    $collection = new \Phalcon\Mvc\Micro\Collection();

    $collection->setHandler(SimpleToDo\Controller\ApiController::class, true);
    $collection->setPrefix('/todo');
    $collection->get('/', 'index');

    return [$collection];
});

$app = new \Phalcon\Mvc\Micro();
$app->setDI($di);

foreach($di->get('collections') as $collection) {
    $app->mount($collection);
}

$app->notFound(function () use ($app) {
    $app
    ->response
    ->setStatusCode(404, 'Not Found')
    ->sendHeaders();
});

$app->handle();
<?php

namespace SimpleToDo\Controller;

class ApiController
{
    public function index()
    {
    echo 'Hello World!';
    }
}
ApiController.php

$di  = new \Phalcon\Di\FactoryDefault;

$di->set('url', function() {
    $url = new \Phalcon\Mvc\Url();
    $url->setBaseUri('/');

    return $url;
});

$di->set('collections', function() {
    $collection = new \Phalcon\Mvc\Micro\Collection();

    $collection->setHandler(SimpleToDo\Controller\ApiController::class, true);
    $collection->setPrefix('/todo');
    $collection->get('/', 'index');

    return [$collection];
});

$app = new \Phalcon\Mvc\Micro();
$app->setDI($di);

foreach($di->get('collections') as $collection) {
    $app->mount($collection);
}

$app->notFound(function () use ($app) {
    $app
    ->response
    ->setStatusCode(404, 'Not Found')
    ->sendHeaders();
});

$app->handle();
<?php

namespace SimpleToDo\Controller;

class ApiController
{
    public function index()
    {
    echo 'Hello World!';
    }
}

我以前也遇到过同样的问题,但我的解决方案是这样的

您必须在
services.php
文件中启动路由,如下所示:

protected function initRouter() {
    return include __DIR__ . '/config/routes.php';
}
您只需要创建
routes.php
文件,在该文件中您必须为所需的路由编写代码。 这将满足您的请求,您可以相应地自定义您的URL

   use Phalcon\Mvc\Router;
   // Create the router
   $router = new Router();

   $router->add("/yourPrefferedUrl", array(
       "controller" => "controllerName",
       "action" => "methodeName"
   ));
您可以为多个请求添加代码,只需复制相同的代码,只需更改控制器和方法。
通过这种方式,您可以尝试使用位于单独文件而不是单个PHP文件中的控制器。

我以前也遇到过同样的问题,但我找到了这样的解决方案

您必须在
services.php
文件中启动路由,如下所示:

protected function initRouter() {
    return include __DIR__ . '/config/routes.php';
}
您只需要创建
routes.php
文件,在该文件中您必须为所需的路由编写代码。 这将满足您的请求,您可以相应地自定义您的URL

   use Phalcon\Mvc\Router;
   // Create the router
   $router = new Router();

   $router->add("/yourPrefferedUrl", array(
       "controller" => "controllerName",
       "action" => "methodeName"
   ));
您可以为多个请求添加代码,只需复制相同的代码,只需更改控制器和方法。
通过这种方式,您可以尝试使用位于单独文件而不是单个PHP文件中的控制器。

这是启动Restful API sry的官方教程,但这没有帮助,因为我已经看过此文档,但是我试着使用控制器开关位于不同的文件中,而不是一个单独的php文件。这是启动Restful API sry的官方教程,但这没有帮助,因为我看过这个文档,但是我试着使用控制器开关位于不同的文件中,而不是一个单独的php文件。