0

I have simple factory and I would like to get params from route here:

<?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;
}

}

I was tring to do something like this:

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

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

    echo $urle;

but it returns error Zend\Mvc\Controller\ControllerManager::get was unable to fetch or create an instance for router

I am newbie in zend 2. Please Help

Regards

jhuet
  • 396
  • 2
  • 11

1 Answers1

0

You need to get the current MvcEvent object in order to get RouteMatch object from there. Try this code:

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

I assume that $allservices is the top level service manager in your code.

Next Developer
  • 1,249
  • 1
  • 10
  • 20