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

Поиск по сайту
http://forum.kohanaframework.su/viewtopic.php?f=38&t=521
Страница 2 из 4

Автор:  qed [ 26 мар 2013, 15:47 ]
Заголовок сообщения:  Re: Поиск по сайту

Смотря как у вас всё организованно, берёте найденный материал, генерируете для него url, делаете редирект на этот урл, вроде просто всё)

Автор:  Sergey [ 26 мар 2013, 23:55 ]
Заголовок сообщения:  Re: Поиск по сайту

формируете результат поиска в массив или объект, передаёте в контроллер и через экшен формируете представление. не вижу сложности. конечно желательно результаты поиска кешировать

Автор:  prickle [ 28 мар 2013, 13:34 ]
Заголовок сообщения:  Re: Поиск по сайту

Перемнная с массивом данных результата поиска есть $finds. А дальше как? надо же что-то вроде
$this->request->redirect('/customer/'.{переменная}

Автор:  prickle [ 28 мар 2013, 13:50 ]
Заголовок сообщения:  Re: Поиск по сайту

вот как я попробывала
в модели забиваем запрос с поиском

Код:
public function find_customer($customer_id)
    {
        $query = DB::select()
                ->from('customer')
                        ->where('fio','like','%'. $_POST['search'].'%')
                        ->or_where('adres','like','%'. $_POST['search'].'%')
                        ->or_where('tels','like','%'. $_POST['search'].'%')
                        ->or_where('info','like','%'. $_POST['search'].'%')
                        ->and_where('customer_id', '=', $customer_id);

        $query->execute();
    }


вызываю его в контроллере
Код:
Model::factory('customer')->find_customer($customer_id);

$uri = Request::detect_uri('/customer/');
                   
   $this->request->redirect('/customer/'.$customer_id);


естесственно ругается The requested URL customer/1 was not found on this server.

Автор:  merlin [ 28 мар 2013, 15:48 ]
Заголовок сообщения:  Re: Поиск по сайту

Все надоело мне смотреть на ЭТО ))! Вот ссылка пользуйтесь http://habrahabr.ru/post/165715/ поиск с учетом морфологиии

Автор:  prickle [ 28 мар 2013, 17:30 ]
Заголовок сообщения:  Re: Поиск по сайту

спокойствие. только спокойствие)) гуглом я умею пользоваться. и прежде чем людей дёргать я на 100% уверенна что не могу сама справиться. не нужен мне поиск с учетом морфологии(видела я эту статью :) ). простой запрос, с лайками меня полностью устраивает. ну не могу я понять как правильно сделать редирект на уже имеющиеся данные. по этому делала на основе того, как это делала для изменения уже имеющихся данных. в том случае открывается форма с данными, вносятся изменения и после сохранении данных делается редирект на ту запись, в которую вносились изменения

а здесь у меня на странице, с учётом пагинации, выведены данные заказчиков, по одной на страницу. и поиска мне достаточно именно такого, пусть и примитивного.

прошу прощения за своё невежество, я всего лишь только учусь.

Автор:  merlin [ 28 мар 2013, 18:01 ]
Заголовок сообщения:  Re: Поиск по сайту

Ну а в bootstrap.php роут настроен?

Автор:  prickle [ 28 мар 2013, 18:05 ]
Заголовок сообщения:  Re: Поиск по сайту

настроен, всё в одном экшене происходит... т.е. хотите сказать, что в правильную сторону думаю и надо искать глупые ошибки/опечатки?

Автор:  prickle [ 28 мар 2013, 18:08 ]
Заголовок сообщения:  Re: Поиск по сайту

или может в бутстрапе по этому поводу что-то ещё должно быть?

Код:
Route::set('customer', '<action>(/<id>)', array('action' => 'newcustomer|editcustomer|delcustomer'))
    ->defaults(array(
        'controller' => 'customer',
        ));


+ на пагинацию, естесственно ), свой бутстрап

Автор:  qed [ 28 мар 2013, 18:20 ]
Заголовок сообщения:  Re: Поиск по сайту

prickle писал(а):
Перемнная с массивом данных результата поиска есть $finds. А дальше как? надо же что-то вроде
$this->request->redirect('/customer/'.{переменная}


Есть массив $finds, посмотрите что внутри, найдите нужную переменную и подставьте её в редирект. Потом сделайте для урла /customer/переменная свой роут и обработчик. А код, который вы привели работать не будет.

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