Как получить параметры в contollerFactory Zend 2?

У меня есть простая фабрика, и я хотел бы получить параметры из маршрута здесь:

<?php
namespace Webb\Factory;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Webb\Controller\IndexController;class IndexControllerFactory implements FactoryInterface
{
public function createService(ServiceLocatorInterface $serviceLocator){

$allservices = $serviceLocator->getServiceLocator();
$sm = $allservices->get('ServiceManager');$IndexController = new IndexController();
$IndexController->setProjectTable($sm->get('project-table'));
$IndexController->setCategories($sm->get('categories-table'));
$IndexController->setPages($sm->get('pages-table'));
$IndexController->setUrls($sm->get('urls-table'));

return $IndexController;
}

}

Я пытался сделать что-то вроде этого:

$router = $serviceLocator->get('router');
$request = $serviceLocator->get('request');

// Get the router match
$routerMatch = $router->match($request);
$urle = $routerMatch->getParam("url1");

echo $urle;

но возвращает ошибку
Zend \ Mvc \ Controller \ ControllerManager :: get не удалось получить или создать экземпляр для маршрутизатора

Я новичок в Zend 2. Пожалуйста, помогите

С уважением

0

Решение

Вам нужно получить текущий объект MvcEvent, чтобы получить оттуда объект RouteMatch. Попробуйте этот код:

$application = $allservices->get('Application');
$routeMatch = $application->getMvcEvent()->getRouteMatch();

Я предполагаю, что $ allservices — менеджер сервисов высшего уровня в вашем коде.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector