Zend Framework - Дополнительные метки маршрутизатора - PullRequest
3 голосов
/ 18 августа 2010

Скорее всего, я поступаю совершенно неправильно.Я совершенно новичок в фреймворке ..

Разрабатываемый мной сайт состоит из двух "частей", которые в основном являются отдельными.Информационная / общественная половина и коммерческая половина.Я использую следующую структуру каталогов:

--application
----default
------controllers
------layouts
------models
------views
----store
------controllers
------layouts
------models
------views
--config
--library
--public

Я хотел бы иметь структуру URL при просмотре продуктов следующим образом:

/ view / category / model / revision

Это подтянет конкретный продукт / ревизию, но я также хотел бы вернуться назад (просмотр всех ревизий, всех моделей и т. Д.).Я не могу понять, как этого добиться .. Мой маршрут настроен так:

Bootstrap.php

  $front = Zend_Controller_Front::getInstance();
  $router = $front->getRouter();
  $route = new Zend_Controller_Router_Route(
      'view/:cid/:sku/:rev',
      array('module' => 'store', 'controller' => 'index', 'action' => 'index')
  );
  $router->addRoute('view', $route);

Это прекрасно работает для получения определенного продукта, но выдаетисключение (оно возвращается к модулю по умолчанию и жалуется, что «представление» контроллера не существует) при пропуске любого из 3 помеченных параметров.Можно ли поставить дополнительные метки, где бы он продолжал использовать контроллер представления под модулем хранилища для 1-3 параметров?Я упускаю суть?

Я ничего не нашел в документации по фреймворку, но я не удивлюсь, если просто не смогу найти страницу ... Что-то в документации Zend Framework меня бесит.

Спасибо

1 Ответ

4 голосов
/ 18 августа 2010

Я на самом деле не парень из ZendFramework, но очевидно, что пропущенные параметры вызывают проблему. Маршруты сопоставляются в обратном порядке. Может ли оно передавать значение NULL в представление, когда передаются 3 параметра и ожидается 4?

Что если вы попробовали что-то вроде:

$route = new Zend_Controller_Router_Route(
      'view/:cid/:sku/:rev',
      array('module' => 'store', 'controller' => 'index', 'action' => 'index', 'cid' => 0, 'sku' => 0, 'rev' => 0)
  );

Он должен передавать значения по умолчанию, если они не предоставлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...