如何在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的数组样式格式