Kohana ORM. Используем выражения

Я долго не мог понять, чего мне не хватает в штатном ORM от Kohana. А не хватало именно возможности использования выражений.

Бывало напишешь по-наивности какое-нибудь выражение прямо в where. Например, так:

where(‘concat(first_name,» «,last_name)’,»like»,»%$searchstring%»)…

А потом получаешь ошибку, что нет такого поля ‘concat(first_name,» «,last_name)’

И вот однажды я в недрах интернетов нашёл решение, которое конечно же решил положить в мою копилку шпаргалок. Всё дело в использовании функции DB::expr. Вот например так:

$searchresult=ORM::factory(«user»)->
where( DB::expr(‘concat(first_name,» «,last_name)’), «like»,»%$searchstring%»)->
order_by(«id»,»desc»)->
limit($data[‘per_page’])->
offset($data[‘offset’])->
find_all();

Воистину, ORM может всё, только нужно знать все его трещинки.

Оставить комментарий

Яндекс.Метрика