我正在尝试制作simple api with phalcon micro,但我没有让它发挥作用。在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();
ApiController.php
<?php
namespace SimpleToDo\Controller;
class ApiController
{
public function index()
{
echo 'Hello World!';
}
}
答案 0 :(得分:0)
我几次遇到同样的问题,但我这样解决了这个问题。
您必须在services.php
文件中启动路由,如下所示:
protected function initRouter() {
return include __DIR__ . '/config/routes.php';
}
您只需创建routes.php
文件,您必须在其中编写所需路由的代码。
这将为您提供服务,您可以相应地自定义您的网址。
use Phalcon\Mvc\Router;
// Create the router
$router = new Router();
$router->add("/yourPrefferedUrl", array(
"controller" => "controllerName",
"action" => "methodeName"
));
您可以为多个请求添加代码,您只需复制相同的代码,只需更改控制器和方法即可。 这样,您可以尝试使用位于单独文件中的Controller,而不是单个PHP文件。