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

Роутинг — Часть 3
http://forum.kohanaframework.su/viewtopic.php?f=21&t=28
Страница 2 из 2

Автор:  b52keks [ 05 май 2012, 19:32 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

спасибо за наглядный пример

Автор:  demyan112rv [ 19 июн 2012, 17:05 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

Подскажите, как можно объеденить эти два роута в один? И вообще это реально или нет?
Код:
Route::set('admcontacts', 'admin/admcontacts(/<page>)', array('page' => '.+'))
   ->defaults(array(
            'directory'  => 'admin',
            'controller' => 'admcontacts',
            'action'     => 'index',
   ));
   
Route::set('admcallback', 'admin/admcallback(/<page>)', array('page' => '.+'))
   ->defaults(array(
            'directory'  => 'admin',
            'controller' => 'admcallback',
            'action'     => 'index',
   ));

Автор:  qed [ 19 июн 2012, 21:24 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

Код:
Route::set('adm', 'admin/<controller>(/<page>)', array('page' => '.+', 'controller' => 'admcontacts|admcallback'))
   ->defaults(array(
            'directory'  => 'admin',
            // 'controller' => 'admcontacts',
            'action'     => 'index',
   ));

По идее так.

Автор:  fly [ 04 авг 2012, 15:18 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

Здравствуйте! А скажите вообще в чем смысл роутов? не проще либо было разработчикам сделать автоматический запуск контроллера и екшена например как в LiveStreet cms, или в этом есть какие-то плюсы?

Автор:  admin [ 04 авг 2012, 15:35 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

Не знаю как реализовано в LiveStreet cms, но тут они тоже автоматически запускаются если прописать в адресе
сайт.ру/контроллер, то запустится контроллер (по дефолту). А вот если мы хотим, чтобы при адресе сайт.ру/труляля и сайт.ру/траляля запускался все тот же контроллер - тут уже нужны роуты.
Впрочем можно и дефолтным пользоваться и вообще все переделать под себя :)

Автор:  Wapruks [ 08 авг 2012, 18:59 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

Есть контроллер и action. В метод передается либо step либо id. Как это написать в роуте?
Код:
                                 $step = $this -> request -> param('step');
         $id = $this -> request -> param('id');

               if ( ! isset($step))
       {
      if (isset($id))
      {
...


Думаю суть понятна. Но как это в роуте записать?

Код:
Route::set('message', 'user(/message(/<action>(/<step>(/<id>))))', array('step'   => '[0-9]+',
                                                       'id'     => '[0-9]+',
                                                                                             ))

Если перейти по адресу user/message/1 имея ввиду id, роут подумает что я имею ввиду step

Автор:  Sergey [ 08 авг 2012, 19:40 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

Wapruks писал(а):
В метод передается либо step либо id. Как это написать в роуте?


Так не проще?

Код:
  Route::set('message', ''<controller>/message(/<action>)(/<id>)', array('id' => '\d+', 'action' = 'step')
    ->defaults(array(
        'controller' => 'user'
        'action' => 'view'
    ));


В данном случае при наборе адреса user/message/1 сработает action_view, а при наборе user/message/step/1 должен сработать action_step. Как то так..

Автор:  Wapruks [ 08 авг 2012, 20:04 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

Я проще отдельный метод создал и все =)

Автор:  vlodko [ 14 янв 2013, 15:59 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

как должен виглядить код здесь
Код:
 /**
    * Saves or loads the route cache. If your routes will remain the same for
    * a long period of time, use this to reload the routes from the cache
    * rather than redefining them on every page load.
    *
    *     if ( ! Route::cache())
    *     {
    *         // Set routes here
    *         Route::cache(TRUE);
    *     }
    *    ...
    */

с нашими роутами скажите пжалуста

Автор:  Sergey [ 14 янв 2013, 23:23 ]
Заголовок сообщения:  Re: Роутинг — Часть 3

vlodko писал(а):
как должен виглядить код здесь
Код:
 /**
    * Saves or loads the route cache. If your routes will remain the same for
    * a long period of time, use this to reload the routes from the cache
    * rather than redefining them on every page load.
    *
    *     if ( ! Route::cache())
    *     {
    *         // Set routes here
    *         Route::cache(TRUE);
    *     }
    *    ...
    */

с нашими роутами скажите пжалуста


в Gleez мы делаем так:


Код:
/**
 * Установка маршрутизации
 *
 * @uses  Path::lookup  Получание адреса из алиаса
 */
if (! Route::cache())
{
  // Роут по умолчанию с переданным в фильтры колбэком Path::lookup()
  Route::set('default', '(<controller>(/<action>(/<id>)))',
    array(
      'action' => 'index|welcome'
    ))
    ->filter('Path::lookup')
    ->defaults(array(
      'controller' => 'welcome',
    ));

  // Кешировать роутинг в продакшене
  Route::cache(Kohana::$environment === Kohana::PRODUCTION);
}

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