2014-11-08 2 views
0

У меня есть простой завод, и я хотел бы получить Params от маршрута здесь:Как получить параметры в 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 :: прибудет не удалось извлечь или создать экземпляр для маршрутизатора

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

С уважением

ответ

0

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^