0

我使用 PHP 和Idiorm进行 SQL 查询。

一个普通的查询

这个有效。

$females = ORM::for_table('person')
               ->where('gender', 'female')
               ->find_many();

问题

某些情况下,我需要添加另一个 where 子句,而无需再次重写整个查询。结果可能如下所示。有用。

$females = ORM::for_table('person')
               ->where('gender', 'female')
               ->where('parent', 22)
               ->find_many();

我的尝试失败了

它以某种方式丢失了对象。

$females = ORM::for_table('person')
               ->where('gender', 'female');

if( ! empty( $parent ) )
{
$females->where('parent', $parent);
}

$females->find_many();
4

1 回答 1

2

我不特别了解 Idiorm,但您应该能够将该代码重构为:

$query = ORM::for_table('person')->where('gender', 'female');

if ($parent) {
    $query->where('parent', $parent);
}

$females = $query->find_many();
于 2012-12-11T11:36:11.160 回答