Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Один роут для несколько методов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Kohana
pantela
Отправлено: 11 Мая, 2016 - 14:07:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Делаю API который имеет 2 метода "reg" и "chekbooking"


Делаю роут виде:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Route::set('api/ipad','api/ipad/<act>(/<object_id>)(/<booking_id>)/<device_id>', array(
  2.                 'act'                   => '[a-z]*',
  3.                 'object_id'             => '[0-9]+',
  4.                 'booking_id'    => '[0-9]+',
  5.                 'device_id'             => '[^/]*'
  6.         ))->defaults(array(
  7.                 'directory'             => 'api',
  8.                 'controller'    => 'ipad'
  9.         ));


Пометил что параметры "object_id" и "booking_id" необязательный. А точнее когда:
act = reg, тогда нужен "object_id"
act = chekbooking, тогда нужен "booking_id"

Параметр "device_id" всегда обязательный, поэтому его в скобки не поместил.

Когда тестирую запрос результат такой:

/api/ipad/reg/30/this_is_device
CODE (htmlphp):
скопировать код в буфер обмена
  1. act: reg
  2. object_id: 30
  3. booking_id:
  4. device_id: this_is_device



/api/ipad/chekbooking/1547/this_is_device
CODE (htmlphp):
скопировать код в буфер обмена
  1. act: chekbooking
  2. object_id: 1547
  3. booking_id:
  4. device_id: this_is_device



При "chekbooking" значение "booking_id" переходит в "object_id" Растерялся Я понимаю что у меня указанно "object_id" как второй параметр и поэтому, а т.к. параметр "device_id" у меня обязательный, его значение и подставляется из последнего параметра.

Вопрос: Как можно, как-нибудь отличить какой параметр я передаю в моём случае... Однако

спс.Ув.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB