Php Phalcon微收集路径不匹配
我试图创建一个新的,但我没有得到它的工作。在Url/todo/上,应调用控制器 index.phpPhp 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() {
$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文件。