PHP-фреймворк Phalcon не передает параметры в контроллер

Я только начал разработку в PHP-фреймворке Phalcon, и я в целом довольно новичок в PHP. У меня вопрос о том, как создать запрос с маршрутом, что, как я считаю, я сделал, и передать параметры маршрута в действие контроллера, которое связано с указанным маршрутом. Ниже я включил три файла, над которыми я работал, и суммирую, что каждый должен делать. У меня также есть конечный результат и где моя проблема лежит непосредственно.

Первый файл — это файл index.php, который принимает все запросы на маршрут для моего сайта.

<?php

//Include all routes on site
foreach (glob("../app/routes/*.php") as $filename)
{
include $filename;
}

foreach (glob("../app/controllers/*.php") as $filename)
{
include $filename;
}

//Create routes and initialize routes
$router = new \Phalcon\Mvc\Router();

$router->mount(new PublicRoutes());
$router->mount(new ApiRoutes());
$router->mount(new AdminRoutes());

$router->handle();

$controller = $router->getControllerName();
$action = $router->getActionName();
$params = $router->getParams();

$di = new \Phalcon\DI\FactoryDefault();

$d = new Phalcon\Mvc\Dispatcher();
$d->setDI($di);
$d->setControllerName($router->getControllerName());
$d->setActionName($router->getActionName());
$d->setParams($router->getParams());

$controller = $d->dispatch();

Второй файл — это фактические маршруты, смонтированные для моего вызова API, с которым я тестирую все.

<?php

class ApiRoutes extends Phalcon\Mvc\Router\Group
{
public function initialize()
{

//Basic api route for pixelpusher
$this->add(
"/addhawk/api/:action/:model/:params",
array(
"controller" => "api",
"action" => 1,
"model" => 2,
"params" => 3,
)
);

}
}

Третий и последний файл — это класс контроллера для API с единственным действием, которое я сейчас тестирую.

<?php

class ApiController extends \Phalcon\Mvc\Controller
{

public function handlerAction()
{
//Pull in parameters
echo "<h1>API Handler Entered</h1>";

$model = $this->dispatcher->getParam("model");

echo $model;

//Choose correct api based off of api param
if( $model == "grid" ) {
echo 'grid';
}
else if ( $model == "admin" ) {
echo 'admin';
}
else {
//No valid api must have been found for request
}

//Return result from api call

return true;
}

}

Таким образом, URL является «localhost / addhawk / api / handler / grate / view», что приводит к следующему выводу в html-формате строки 9 в ApiController.

Выход из вызова API

Из переменной $ model нет распечатки, как это должно быть. Там также нет ошибки, поэтому я понятия не имею, почему это не печать. В соответствии с документацией и каждым ресурсом, который я прочитал в Интернете, все параметры должны быть доступны непосредственно из каждого действия контроллера благодаря диспетчеру и классу $ di или чему-то подобному. Итак, мой вопрос: почему я не могу получить доступ к параметрам, если кажется, что все должно быть в состоянии?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]