Kohana 3 ORM сравнивает 2 столбца в предложении where - PullRequest
5 голосов
/ 09 октября 2011

Мне нужно сгенерировать запрос так:

SELECT * FROM `table1` WHERE `date1` < `date2`

Я не могу найти, как сравнить 2 столбца в Kohana ORM. Здесь date2 рассматривается как текст.

$foo = ORM::factory('model1')->where('date1','<','date2');

Как мне написать эту строку?

Спасибо!

Подробнее:

Я использую это на данный момент:

$query = DB::query(Database::SELECT, "SELECT id FROM table1 WHERE `date1` < `date2`");
$result = $query->execute();

$foo = array();
foreach ($result as $r) {
    $foo[] = ORM::factory("model1", $r['id']);
}

1 Ответ

3 голосов
/ 12 октября 2011

Если вы не хотите, чтобы Kohana модифицировал строку, как это было бы с 3-м аргументом в DB, ​​где функция, вы можете использовать функцию DB::expr(), которая оставит то, что вы передаете, без изменений. Так что с вашим примером вы можете использовать

$foo = ORM::factory('model1')->where('date1','<',DB::expr('date2'));
...