Zend Framework - длинные маршруты (Маршрутизатор) - PullRequest
0 голосов
/ 21 февраля 2010

Я уже собираюсь начать использовать простую строку GET.

Или я не очень хорош в настройке маршрутов? :)

И настройка маршрутов с помощью регулярных выражений в .htaccess

foreach($links as $a) 
{

$Router->addRoute($a['link'],
                  new Zend_Controller_Router_Route(
                      $a['link'] . '/:page/:ad_id/:photo/:price_from/:price_to/:regions/:rajoni/:towns/:pagasti/:gadi_from/:gadi_to/:augums_from/:augums_to',
                      array
                      ("page" => 1,
        "ad_id" => 0,
        "photo" => 0,
        "price_from" => 0,
        "price_to" => 0,
        "regions" => 'def',
        "rajoni" => 'def',
        "towns" => 'def',
        "pagasti" => 'def',
        "gadi_from" => 'def',
        "gadi_to" => 'def',
        "augums_from" => 'def',
        "augums_to" => 'def',
        "department" => $a['department'],
        "category" => '',
        "link" => $a['link'],
        "controller" => "ads",
                       "action"     => "view",
                      ))); 
}

Пожалуйста, помогите мне найти правильный способ использования Zend Framework Routes

После редактирования:

Кстати, можно ли переключаться между категориями, чтобы связать с ними маршрут? Значит, URL могут быть читаемыми человеком?

Или лучше придерживаться конфигурации файла .htaccess? Но я до сих пор не понял, как сделать удобочитаемые URL-адреса без добавления номера для категорий в регулярное выражение.

  RewriteRule ^.*-d([0-9]+)/.*-c([0-9]+)/page-([0-9]+)/?$ index.php?DepartmentId=$1&CategoryId=$2&Page=$3 [L]
  RewriteRule ^.*-d([0-9]+)/.*-c([0-9]+)/?$ index.php?DepartmentId=$1&CategoryId=$2 [L]

Единственный способ, который я выяснил, - передать фактическое имя категории в качестве значения и сравнить его на стороне сервера с массивом имен категорий.

Или есть лучший способ?

1 Ответ

0 голосов
/ 21 февраля 2010

Используете ли вы этот маршрут, чтобы показать результаты поиска? В этом случае я настоятельно рекомендую избегать маршрутов такой длины - их сложнее поддерживать (попробуйте добавить другой параметр) - используйте строку запроса GET как обычно.

Структурировать что-то вроде /ads/view/:page/?ad_id=xxx&...

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