问题描述
我正在使用 rethinkdb for PHP 发现 HERE
我正在尝试过滤数据库中的几行。
对于我要检查的行之一,RethinkDB 表现得很奇怪,工作正常,但另一行却没有。
我检查了行的 var_dump 输出,可以看到值小于我的目标 - 50。
我检查表格的代码:
public function checkCallbacks()
{
$query = \r\table('payments')
->orderBy(['index' => \r\desc('dateCreated')])
->filter(function ($data) {
return $data('forwarded')->eq((string) '1')
//->rAnd($data('callbacks_sent')->lt((string)'50')) // Does not work
->rAnd($data('bad_callbacks_sent')->lt((string)'50')); // Works fine
})
->run($this->conn);
$query = $query->toArray();
echo count($query);
if (count($query) > 0) {
return $query;
}
return false;
}
我只是在处理程序中运行它,例如:
public function checkPaymentsForCallbacks()
{
$BAD_CALLBACK_LIMIT = 20;
$payments = $this->payments->checkCallbacks();
if (!$payments || $payments == false) {
\ConsoleLogging::errorMessage("Failed to load payments or no payments with callbacks need sending",true,true);
} else {
$i = 0;
$paymentDetails = [];
// Foreach payment inside the database which is forwarded
// We want to make it only send callbacks for when the result changes
foreach ($payments as $payment) {
etc......
如您所见,除了 bad_callbacks_sent 为 0 和 callbacks_sent 为 8 之外,它们都是 STRINGS。 我想这是因为我听说过重复的名称会导致问题....
如果有人知道这个问题,我很想知道它为什么不起作用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)