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

0

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

<?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. Пожалуйста, помогите

С уважением

Теги:
factory
zend-framework
zend-framework2
zend-route

1 ответ

0

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню