Маршруты Kohana v3 — несколько необязательных параметров

Я настраиваю поисковую систему с URL-адресами, например. все параметры необязательны, всего 15 возможных параметров

http://example.com/search/key1-value/key2-value/key3-value/key13-value/key15-value

Есть ли лучший способ настроить маршрут, чем этот?

Route::set('search', 'search(/<param1>(/<param2>(/<param3>(/<param4>(/<param5>(/<param6>(/<param7>(/<param8>(/<param9>(/<param10>(/<param11>(/<param12>(/<param13>(/<param14>(/<param15>)))))))))))))))')
        ->defaults(array(
        'controller' => 'search',
        'action'     => 'index',
));

Затем я бы проверил их в контроллере и разобрал их в аккуратный массив. Есть ли способ указать маршрут с любым количеством необязательных параметров /ключ-значение/?


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

Я заметил, что объект запроса уже имеет хороший массив параметров - это возвращает меня к вопросу Route::set. Есть ли способ сформулировать его, разрешая любое количество параметров без уродливой вложенности ...(/<param14>(/<param15>))))))))...?


person MeatFlavourDev    schedule 29.09.2010    source источник
comment
Возможно, вы захотите переосмыслить то, что вы делаете, и вместо этого проанализировать параметры в контроллере.   -  person tplaner    schedule 30.09.2010


Ответы (2)


No.

PS: кто-то может еще раз сказать, что короткие ответы - это плохо, но больше сказать нечего: Нет, такого пути нет.

person zerkms    schedule 29.09.2010
comment
ага. Это то, о чем я думал. Ну что ж, как только я обнаружил функцию Request::param(), это уже не имело особого значения пожал плечами - person MeatFlavourDev; 30.09.2010

Route::set('search', 'search(/<params>/)',array('params'=>'\.*'))
        ->defaults(array(
        'controller' => 'search',
        'action'     => 'index',
));

пытался?

person lazycommit    schedule 30.11.2010