2013-08-30 5 views
1

Я запускаю два модуля в zend framework. 1 - это администрирование (бэкэнд), а другое - клиент (интерфейс). Я выделил два виртуальных хоста для обоих модулей. бэкэнд работает нормально. И в интерфейсе я получаю индексную страницу. но когда я пытаюсь перейти на вторую страницу, он дает мне ошибку, как:запрошенный контроллер не может быть сопоставлен с существующим классом контроллера

A 404 error occurred 

Page not found. 

The requested controller could not be mapped to an existing controller class. 
Controller: 
Client\Controller\Search(resolves to invalid controller class or alias:  Client\Controller\Search) 
No Exception available 

Вот моя основная часть module.config.php файла ...

'controllers' => array(
    'invokables' => array(
     'Client\Controller\Index'   => 'Client\Controller\IndexController', 
     'Client\Controller\Search'   => 'Client\Controller\SearchController', 
    ), 
), 

и в маршрутизаторе этой является кодом для маршрутизации второй страницы.

'search' => array(
      'type' => 'segment', 
      'options' => array(
       'route'  => '/search[/][:action][/:id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Client\Controller\Search', 
        'action'  => 'index', 
       ), 
      ), 
     ), 

Я не знаю, что происходит. Помощь будет оценена.

+0

как класс 'Client \ Controller \ SearchController' определяется? (имя файла, пространство имен, путь к файлу и т. д.) –

+0

Он находится в 'src/Client/Controller/SearchController.php' , а пространство имен - Client \ Controller. – user231791

+0

404 происходит обычно, когда в контроллере есть действие, а у dosent есть свой уважаемый вид, поэтому вы можете попробовать увидеть, есть ли какие-либо действия в Client \ Controller \ SearchController. –

ответ

1
'controllers' => array(
    // 
    'classes' => array(
     'Client\Controller\Index'   => 'Client\Controller\IndexController', 
     'Client\Controller\Search'   => 'Client\Controller\SearchController', 
    ), 
    'invokables' => array(
     'Client\Controller\Index'   => 'Client\Controller\IndexController', 
     'Client\Controller\Search'   => 'Client\Controller\SearchController', 
    ), 
), 
'search' => array(
      'type' => 'Segment', // <- I added S 
      'options' => array(
       'route'  => '/search[/][:action][/:id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Client\Controller\Search', 
        'action'  => 'index', 
       ), 
      ), 
     ), 

Если он не работает, покажите нам, что вы module.php

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