Zend проблема маршрутизации на устаревшем коде

У меня проблема с маршрутизацией в унаследованном приложении Zend, которое я унаследовал — интересно, кто-нибудь может помочь мне отладить?

Пока я проверил:

  • application.config.php — модули загружены правильно:

    'modules' => array(
    'App',
    'Finding',
    'Listing',
    

и так далее

  • module.config.php и маршрут, кажется, подходят для пути, например:

    'listing' => array(
    'type'    => 'segment',
    'options' => array(
    'route'    => '/admin/property/listing[/:action[/:id]][/:component/:optionTitle/:optionValue]',
    'constraints' => array(
    'action'                 => '[a-z0-9_-]*',
    'id'                     => '[0-9]+',
    'component'              => '[a-z0-9_-]*',
    'optionTitle'    => '[a-z0-9_-]*',
    'optionValue'   => '[a-z0-9_-]*'
    ),
    
    'defaults' => array(
    'controller' => 'Admin\Controller\Listing',
    'action'     => 'list',
    ),
    ),
    ),
    

Фактическое сообщение об ошибке, которое я получаю:

     The requested URL could not be matched by routing. No Exception available

То, что я делаю, находится в зоне входа пользователя в систему, щелкает по категории списка, которая загружается нормально, а затем отправляет форму POST, которая обновляет определенные атрибуты в БД, связанные с этим идентификатором.

Однако при отправке я получаю вышеупомянутое сообщение, есть ли другие способы отследить это, если это не проблема маршрута?

РЕДАКТИРОВАТЬ

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

Опубликовать массив данных:

   [listingId] => 121 [colvalues] => Array ( [0] => 11 [1] => 22 [2] => 33 [3] => 44 [4] => 55 [5] => 66 [6] => 77 [7] => 88 )

Индивидуальная структура URL

    admin/property/listing/view/11111

Он отправляет НАЗАД на тот же URL — так:

    admin/property/listing/view

0

Решение

Маршрут имеет дополнительный id параметр

/admin/property/listing[/:action[/:id]]

Вы не публикуете id параметр, а точнее listingId,

мой угадать (а) являются:

  1. Здесь нет viewAction в Admin\Controller\Listing,

  2. Есть логика контроллера, которая специально проверяет id параметр и, если не указано, возвращает ответ с 404 код состояния.

Я думаю, что причина в том, что даже при id параметр отсутствует в вашем маршруте (admin/property/listing/view) маршрутизатор должен по-прежнему соответствовать действию контроллера (как id является необязательный параметр).

0

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

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

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