Или ИМХО даже лучше, попробуйте это:
$user = ORM::factory('user')
->where('LOWER("email")', '=', DB::expr("LOWER('alice@spam.com')"))
->find();
PS. Я не вижу необходимости создавать помощник DB :: lower (), но это может быть только я ...
EDIT:
$value = 'alice@spam.com';
$user = ORM::factory('user')
->where('LOWER("email")', '= LOWER', (array) $value)
->find();
Запрос станет чем-то вроде (некоторое время не использовавшим ORM) «SELECT users.id, users.email ОТ пользователей WHERE LOWER (« email ») = LOWER ('alice@spam.com') LIMIT 1".
Обратите внимание на пространство, я только что обновил часть своего кода, чтобы использовать это, так как я только что выяснил эту возможность.
Надеюсь, вы будете так же счастливы, как и я.