Kohana 3 の ORM モジュールで Postgres を使用しており、postgres 関数を使用して SELECT を実行し、比較を行う前にデータベース内の値を小文字に変換したいと考えています。
SQL では、次のように記述します。
select * from accounts where lower(email) = 'alice@spam.com';
Kohana では、次のように書きたいと思います。
$user = ORM::factory('user')
->where('lower(email)', '=', strtolower('alice@spam.com'))
->find();
ただし、ORM は列名を単に「email」ではなく「lower(email)」と推測しようとしているため、これはエラーになります。
私はKohanaとORMが初めてなので、同じ結果が得られる代替手段も役立ちます。