Zend 2 маршрут по умолчанию

У меня проблемы с маршрутизацией по умолчанию в ZF2:

 'router' => array(
'routes' => array(
'hostbill-api' => array(
'type'    => 'Literal',
'options' => array(
'route'    => '/api/hostbill',
'constraints' => array(
'service' => '[a-zA-Z][a-zA-Z0-9_-]*',
'call'    => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'__NAMESPACE__' => 'Hostbill\Controller',
'controller'    => 'Api',
'action'        => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'hostbill-api-service' => array(
'type'    => 'Segment',
'options' => array(
'route'    => '[/:service[/:call]]',
'constraints' => array(
'service' => '[a-zA-Z][a-zA-Z0-9_-]*',
'call'    => '[a-zA-Z][a-zA-Z0-9_-]*',
),
),
),
'hostbill-api-hook' => array(
'type'    => 'Segment',
'options' => array(
'route'    => '/hook[/:action]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'__NAMESPACE__' => 'Hostbill\Controller',
'controller'    => 'Hook',
'action'        => 'index',
),
),
),
),
),
),
),

Что я хочу сделать, это когда я звоню URL / API / hostbill / крюк / non_existent_action URL, дефолт действие это называется.

На самом деле, если я вызываю существующее действие, маршрутизация работает, но если я использую несуществующее ловушечное действие, то по умолчанию не вызывается и запускается 404.

Любая помощь приветствуется

0

Решение

поместите это в свой контроллер:

/**
* Create an HTTP view model representing a "not found" page
*
* @param  HttpResponse $response
* @return ViewModel
*/
protected function createHttpNotFoundModel(HttpResponse $response)
{
return $this->indexAction();//or whatever that is your default action is
}

или этот:

/**
* Action called if matched action does not exist
*
* @return array
*/
public function notFoundAction()
{
return $this->indexAction();//or whatever that is your default action is
}
0

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

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

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