[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как на kohana query builder написать поиск
SoMeOnE
Добрый день.
Пока так написал
 $sql = '
SELECT `cs_product`.`id`, `cs_product`.`name_'
.I18n::lang().'`, `cs_product`.`description_'.I18n::lang().'`, `cs_product`.`full_text_'.I18n::lang().'`, `cs_product`.`price`, `cs_content_list`.`url`
FROM `cs_product`
LEFT JOIN `cs_content_list` ON `cs_content_list`.`content_id` = `cs_product`.`cat_id`
WHERE MATCH(`cs_product`.`name_'
.I18n::lang().'`) AGAINST("'.$keywords.'")
'
;
$result = DB::query(Database::SELECT, $sql)->execute()->as_array();

Как этот запрос под query builder переделать.
Никак не получается). Остановился на примерно таком

$result = DB::select('cs_product.*', array('cs_content_list.url', 'content_id'))
->
from('cs_product')
->
join('cs_content_list')
->
on('cs_product.cat_id', '=', 'cs_content_list.content_id')
->
and_where('MATCH("cs_product.name_'.I18n::lang().'")', 'AGAINST', DB::expr("(:str IN BOOLEAN MODE)"))
->
param(':str', $keywords)->execute()->as_array();

В данном случае печатается такой запрос
SELECT `cs_product`.* FROM `cs_product` WHERE MATCH("cs_product.name_ru") AGAINST ('zxczxc4444' IN BOOLEAN MODE)

в котором синтаксически неверно передается MATCH("cs_product.name_ru")
Как можно исправить?
Такой запрос в предыдущей кохане вроде работал. Сейчас 3.3
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.