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

Проблема с роутами
http://forum.kohanaframework.su/viewtopic.php?f=31&t=211
Страница 1 из 1

Автор:  websto [ 05 июн 2012, 22:49 ]
Заголовок сообщения:  Проблема с роутами

Есть роуты

Route::set('cat', '<cat>/<id>/<artname>(/<page>)', array('id' => '[0-9]+'), array('artname' => '.+'),array('page' => '[0-9]+'))
->defaults(array(
'controller' => 'categ',
'action' => 'cat',
));

Выводит вот такую ссылку http://localhost/site/cat/2/document

Route::set('do_search', 'search(/<artname>)', array('artname' => '.*'))
->defaults(array(
'controller' => 'search',
'action' => 'search',
));

этот выводит http://localhost/site/search?text=поиск роут поиска по сайту

Когда на главной странице кликаеш по поиску все нормально выводится а когда на этой странице

http://localhost/site/cat/2/document то выводит http://localhost/site/cat/2/search?text=

Не могу понять как его настроит

Автор:  qed [ 05 июн 2012, 23:06 ]
Заголовок сообщения:  Re: Проблема с роутами

Цитата:
Когда на главной странице кликаеш по поиску

Если я правильно понял, то дело в том, как указан урл в шаблоне. Покажите вид, в котором находится кнопка поиска.

Автор:  websto [ 05 июн 2012, 23:18 ]
Заголовок сообщения:  Re: Проблема с роутами

В смысле submit формы?Вот вся форма

<form action='search' method="get">
<input type='text' name='text' id='search_box'/>
<input type='submit' value='GO' class='search_button'/> <br/>
</form>

Автор:  websto [ 05 июн 2012, 23:26 ]
Заголовок сообщения:  Re: Проблема с роутами

Да я разобрался это действительно дело было в форме сделал вот так и работает

<?php echo Form::open('/search', array('method'=>'GET'));?>
<?php echo Form::input('text'); ?>
<?php echo Form::submit(NULL, 'GO'); ?>
<?php echo Form::close(); ?>

Вернее я не понял в чем было дело но главное что работает

Автор:  ivank_x [ 05 июн 2012, 23:46 ]
Заголовок сообщения:  Re: Проблема с роутами

Абсолютный путь указали /search, вместо search, поэтому и заработало

Автор:  qed [ 05 июн 2012, 23:53 ]
Заголовок сообщения:  Re: Проблема с роутами

Хм. А вообще странно что заработало, если у вас сайт находится не в корне, а вдиректории /site, то относительный урл от слеша указывать нельзя, будет выводить
http://localhost/search?text=
вместо
http://localhost/site/search?text=


Хотя нет, что касается Form::open(), то он учитывает base_url из bootstrap.php, так что всё будет работать правильно, что немного странно, ведь если нам понадобится сгенерировать урл формы из роута, с помощью Route::url, то base_url подставится два раза.

Автор:  websto [ 05 июн 2012, 23:55 ]
Заголовок сообщения:  Re: Проблема с роутами

Если здесь поставит

<form action='/search' method="get">

то выдает Not Found.А как прописать в этом варианте абсолютный путь или все таки тот способ использовать.
Просто мне здесь проще управлять стилями

Автор:  qed [ 06 июн 2012, 00:05 ]
Заголовок сообщения:  Re: Проблема с роутами

Код:
<form action="<? echo Route::url('search'); ?>" method="get">

если base_url в bootstrap.php указан как /site, то должно работать.

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