Пока так написал
$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