【问题标题】:Doctrine ORM Criteria - dynamic orXDoctrine ORM Criteria - 动态 orX
【发布时间】:2014-07-19 01:28:21
【问题描述】:

我花了很长时间,但找不到合适的解决方案。 如何修改下面的代码,以便我可以使用可变数量的动态包含条件?

$criteria = Criteria::create();
$expr = Criteria::expr();

$criteria->where(
            $expr->orX(
                    $expr->contains('field1', $str),
                    $expr->contains('field2', $str),
                    $expr->contains('field3', $str),
                    $expr->contains('field4', $str)
            )
    );

【问题讨论】:

  • 我认为解决方案描述为here

标签: php orm doctrine-orm doctrine criteria


【解决方案1】:

你可以使用这个方法:

$criteria->where(Criteria::expr()->eq('active', 'true'));

【讨论】:

    【解决方案2】:

    你可以像这样动态调用它:

    $criteria = new Criteria();
    $expr = array();
    $expr[] = $criteria->expr()->eq(/** what you want */);
    $expr[] = $criteria->expr()->contains(/** what you want */);
    $criteria->where(call_user_func_array(array( $criteria->expr(), 'orX' ),$expr));
    

    【讨论】:

      猜你喜欢
      • 2012-04-07
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      相关资源
      最近更新 更多