Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

как организовать ссылку списка с необязательными параметрами
http://forum.kohanaframework.su/viewtopic.php?f=31&t=716
Страница 1 из 2

Автор:  mstdmstd [ 03 авг 2013, 12:22 ]
Заголовок сообщения:  как организовать ссылку списка с необязательными параметрами

Всем привет,
Я почитал описание работы роутингов http://kohanaframework.su/advanced/route_p1
но не нашел, как организовать ссылку списка с необязательными параметрами вида :
http://local-kohana.com/tour/index/page ... me/ivanov/

Где все параметры включая номер страницы необязятельны и и должны иметь значения по умолчанию.

В конфигурации роутинов я прописал :
Код:
Route::set('admin_tour_index', '(<controller>(/<action>(/<id>)(/<page>)(/<filteruserid>)(/<filtername>)))')
   ->defaults(array(
      'controller' => 'tour',
      'action'     => 'index',
   ));

Н получаю ошибку ": Unable to find a route to match the URI: tour/index/page/2/filteruserid/3/filtername/ivanov".
А как правильно?

Автор:  WinterSilence [ 03 авг 2013, 14:58 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

в ссылке 8 параметров, а в роуте 6, значения по умолчанию и регулярки для параметров также не помешают

Автор:  mstdmstd [ 03 авг 2013, 15:26 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

Да параметр (/<id>) там не нужен. Убираю его :
Получаю :
Код:
Route::set('admin_tour_index', '(<controller>(/<action>(/<page>)(/<filteruserid>)(/<filtername>)))')
   ->defaults(array(
      'controller' => 'tour',
      'action'     => 'index',
   ));

И на ссылке
http://local-kohana.com/tour/index/page/2/filteruserid/3/filtername/ivanov/
ошибка Unable to find a route to match the URI: tour/index/page/2/filteruserid/3/filtername/ivanov

При этом ссылка local-kohana.com/tour/index/page/2 запуcкается нормально

Ссылка разбирается :
Код:
http://local-kohana.com - хост
/tour - controller
/index- action
page/2/   - Три пары ключ - значение
filteruserid/3/
filtername/ivanov/

Что неправильно?

Автор:  WinterSilence [ 03 авг 2013, 16:21 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

а как по твоему роут должен понять что это 3 пары, а не 6 штук?))

Автор:  mstdmstd [ 03 авг 2013, 16:55 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

WinterSilence писал(а):
а как по твоему роут должен понять что это 3 пары, а не 6 штук?))

ну поэтому я и спрашиваю а как правильно...

Автор:  WinterSilence [ 03 авг 2013, 17:11 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

а я уже написал, если не понятно о чем я перечитайте http://kohana3.ru/route

Автор:  mstdmstd [ 04 авг 2013, 09:36 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

WinterSilence писал(а):
а я уже написал, если не понятно о чем я перечитайте http://kohana3.ru/route

Спасибо за интересную ссылку , этого сайта я не видел.
По этой доке нормально получается когда число параметров фиксировано
У меня форма со списком и фильтром по 4 полям + 2 поля сортировки и направления сортировки Если писать в ссылке все 6 параметров один за другим то нормально
Правда остается вопрос а как помечать если параметр не заполнен ?Дефисом который будет обозначать что параметр пуст ? Типа
Код:
http://local-kohana.com/tour/index/2/-/3/-/

Поэтому я хотел сделать определение параметров не по расположению относительно актиона а по парам "parameter_key/parameter_value". Но как это сделать я не нашел...
Надеюсь я понятно обьяснил чего хочу...

Автор:  WinterSilence [ 04 авг 2013, 10:39 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

сделайте post форму и не морочьте себе голову, писать под каждую страницу роут это не есть гуд

Автор:  mstdmstd [ 04 авг 2013, 16:10 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

WinterSilence писал(а):
сделайте post форму и не морочьте себе голову, писать под каждую страницу роут это не есть гуд

А если не "писать под каждую страницу роут" то можно ли открывать по ссылке страницу без написания роутов или написать один общий роут при которм 1й и 2й параметры это контрол и актион а дальще все параметры одной строкой я как-нибудь ее разберу сам ?
Я немного запутался с роутами в Kohana...

Автор:  WinterSilence [ 04 авг 2013, 16:55 ]
Заголовок сообщения:  Re: как организовать ссылку списка с необязательными парамет

70% всех задач можно решить с помощью стандартного роута, который приводится в bootstrap.
Простой CRUD пример:
http://kohana.ru/page/list/ список страниц
http://kohana.ru/page/info/id/ страница
http://kohana.ru/page/(delete или update или add)/id/ удаление, редактирование и добавление страниц

Я использую вот такой набор роутов:
https://github.com/WinterSilence/parts- ... routes.php

Надо помнить, что лишняя загрузка и обработка роутов лишь тормозит систему.
Пример:
Создали 100 роутов под каждый контроллер. Выполняем запрос, а наш роут в списке 65ый, значит чтобы до него дойти надо сделать 65 проверок, не говоря уже о том, что будет создано 100 объектов-роутов.

Цитата:
а дальще все параметры одной строкой я как-нибудь ее разберу сам ?

я же объяснил, что при работе с формами по ряду причин лучше использовать POST метод. По какой причине вы именно в ссылках хотите все параметры передавать? и что если их 10..30... 100?

Страница 1 из 2 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/