【问题标题】:PHP split class function callsPHP拆分类函数调用
【发布时间】:2023-04-12 14:34:01
【问题描述】:

我使用 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();

【问题讨论】:

    标签: php class object orm idiorm


    【解决方案1】:

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

    $query = ORM::for_table('person')->where('gender', 'female');
    
    if ($parent) {
        $query->where('parent', $parent);
    }
    
    $females = $query->find_many();
    

    【讨论】: