Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 27 апр 2024, 13:18

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 03 авг 2013, 12:22 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
Всем привет,
Я почитал описание работы роутингов 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".
А как правильно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2013, 14:58 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
в ссылке 8 параметров, а в роуте 6, значения по умолчанию и регулярки для параметров также не помешают

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2013, 15:26 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
Да параметр (/<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/

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2013, 16:21 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
а как по твоему роут должен понять что это 3 пары, а не 6 штук?))

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2013, 16:55 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
WinterSilence писал(а):
а как по твоему роут должен понять что это 3 пары, а не 6 штук?))

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 авг 2013, 17:11 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
а я уже написал, если не понятно о чем я перечитайте http://kohana3.ru/route

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 авг 2013, 09:36 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
WinterSilence писал(а):
а я уже написал, если не понятно о чем я перечитайте http://kohana3.ru/route

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 авг 2013, 10:39 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
сделайте post форму и не морочьте себе голову, писать под каждую страницу роут это не есть гуд

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 авг 2013, 16:10 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
WinterSilence писал(а):
сделайте post форму и не морочьте себе голову, писать под каждую страницу роут это не есть гуд

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 авг 2013, 16:55 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
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?

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group