如何在Phalcon PHP ORM中设置或设置条件?

如何在Phalcon PHP ORM中设置或设置条件?,php,mongodb,phalcon,Php,Mongodb,Phalcon,我使用phalconphp作为phpmvc框架,使用MongoDB。 我可以根据一些标准找到对象: $user = User::findFirst(array(array('username' => $login, 'email'=> $login))); 您可以注意到,此请求将根据条件之间的逻辑和运算符返回记录。我需要形成一个请求,该请求将根据条件之间的或运算符返回结果 问题还在于我使用的是MongoDB,因此,正如我所想,我无法手动编写PHQL请求。您可以在第一个参数中将列名作

我使用
phalconphp
作为phpmvc框架,使用
MongoDB
。 我可以根据一些标准找到对象:

$user = User::findFirst(array(array('username' => $login, 'email'=> $login)));
您可以注意到,此请求将根据条件之间的逻辑
运算符返回记录。我需要形成一个请求,该请求将根据条件之间的
运算符返回结果


问题还在于我使用的是MongoDB,因此,正如我所想,我无法手动编写
PHQL
请求。

您可以在第一个参数中将列名作为字符串传递:

$user = User::findFirst('username = "'.$login.'" OR email = "'.$login.'"');

只是搞乱PHP数组的问题

$user = User::findFirst( array( 
    '$or' => array(
        array( 'username' => $login),
        array( 'email' => $login)
    )
 ));
因此,我不仅展示了答案,而且展示了我的非PHP思维是如何解决这个问题的:

$result = '{ "$or": [ { "username": "login" }, { "email": "login" } ] }';
echo var_dump( json_decode( $result ) );

$test = array( 
    '$or' => array(
         array( 'username' => 'login'), array( 'email' => 'login')
     )
);

echo json_encode( $test ) ."\n"
因此,在短短几行中,我们转换并证明了这一点。因此,既然您从手册页面或阅读其他关于JSON的问题了解JSON,只需将其转换即可。这也是我在这里提交有效JSON响应的原因之一,是为了将逻辑转换成几乎任何语言实现

$result = '{ "$or": [ { "username": "login" }, { "email": "login" } ] }';
User::findFirst(array(json_decode($query,true)));
$result是可用于在mongodb命令行中触发查询的确切json


带第二个参数true的json_decode将输出json的数组样式格式