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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Роутинг
СообщениеДобавлено: 24 май 2012, 21:13 
Не в сети
Зеленый

Зарегистрирован: 24 май 2012, 21:00
Сообщения: 3
Перевёл сайт на кохану. Требуется сделать так, чтобы все старые ссылки были рабочими. То есть надо научить кохану преобразовывать адреса вида
    pages.php?c=4
в
    /pages/page/4
Пытался сделать так:
Код:
Route::set('oldpages', 'pages/4')
  ->defaults(array(
    'controller' => 'pages',
    'action'     => 'page',
    'id'         => '4',
   ));

но получаю ошибку 404.
(в данный момент мне важно преобразовать именно эту страницу, поэтому необязательно указывать правило роутинга для всех страниц)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 24 май 2012, 21:48 
Не в сети
Новичок

Зарегистрирован: 13 май 2012, 13:16
Сообщения: 29
Код:
Route::set('oldpages', 'pages/<page>/<id>', array('id' => '[0-9]+'))
   ->defaults(array(
      'controller' => 'pages',
      'action' => 'page',
   ));


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 24 май 2012, 23:44 
Не в сети
Супермодератор
Аватара пользователя

Зарегистрирован: 13 фев 2012, 22:24
Сообщения: 65
Откуда: оттуда
В каком смысле преобразовать ?
Перейдя по pages.php?c=4 вы не попадете на /pages/page/4
Движок надо переделать сначала.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 25 май 2012, 10:12 
Не в сети
Зеленый

Зарегистрирован: 24 май 2012, 21:00
Сообщения: 3
ivank_x: всё равно страница не найдена.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 25 май 2012, 15:25 
Не в сети
Новичок

Зарегистрирован: 13 май 2012, 13:16
Сообщения: 29
Так а у Вас есть контроллер pages, и экшен page?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 25 май 2012, 20:18 
Не в сети
Зеленый

Зарегистрирован: 24 май 2012, 21:00
Сообщения: 3
Цитата:
Так а у Вас есть контроллер pages, и экшен page?

Да. Этот экшен отображает страницы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 29 июл 2012, 07:32 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
eBasher писал(а):
В каком смысле преобразовать ?
Перейдя по pages.php?c=4 вы не попадете на /pages/page/4
Движок надо переделать сначала.


Не движок переделывать, а всего лишь правило в .htaccess написать и mod_rewrite подключить :3


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 29 июл 2012, 07:49 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Darth_Vaider писал(а):
То есть надо научить кохану преобразовывать адреса вида
    pages.php?c=4
в
    /pages/page/4


Маршрутизация:
Код:
Route::set('oldpages', '<page>', array('page' => 'pages\.php\?c=\d+'))
  ->defaults(array(
    'controller' => 'pages',
    'action'     => 'page'
   ));

Route::set('newpages', '<controller>/<action>/<id>', array('id' => '\d+'))
  ->defaults(array(
    'controller' => 'pages',
    'action'     => 'page'
   ));


Контролер:
Код:
class Controller_Pages extends Controller_Template {
  public function action_page()
  {
    $page = $this->request->param('page') ? $this->request->param('page') : $this->request->param('id');

    $content = View::factory('/pages/show')
                   ->bind('page', $page);
    $this->template->content = $content;
  }
}


Вид:
Код:
<?php
  echo 'Вы находитесь на странице ' . $page;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 31 июл 2012, 19:29 
Не в сети
Супермодератор
Аватара пользователя

Зарегистрирован: 13 фев 2012, 22:24
Сообщения: 65
Откуда: оттуда
А если нужно будет использовать адрес вида
/pages/page/4?param=price
будет работать ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Роутинг
СообщениеДобавлено: 01 авг 2012, 00:52 
Не в сети
Бывалый

Зарегистрирован: 16 апр 2012, 19:44
Сообщения: 113
судя по всему нет.
для подобного подойдет что-то подобное


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

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


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

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


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

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