首页 文章

获取错误“在数组上调用成员函数格式()”,同时查询CakePHP 3中两个日期之间的记录

提问于
浏览
0

我想在两个日期之间找到记录,所以我写了这段代码:

$this->paginate['conditions']['OR']['Clients.date_registered BETWEEN ? and ?'] = [$dateRegFrom, $dateRegTo];

date_registered 是一个 datetime 列,所以我尝试了两种格式

即日期('Y-m-d')和日期('Y-m-d H:i:s')

这是条件的样子,

[OR] => Array
        (
            [Clients.date_registered BETWEEN ? and ?] => Array
                (
                    [0] => 2017-11-01 00:00:00    //2017-11-01 in Y-m-d format
                    [1] => 2018-11-20 22:28:55    //2018-11-20 in Y-m-d format
                )

        )

但我收到一个错误(详情)

file :     "/vendor/cakephp/cakephp/src/Database/Type/DateTimeType.php"
line : 122
message : "Call to a member function format() on array"

如何摆脱这个问题/问题?

1 回答

  • 0

    我已经更改了我的代码并在 OR 条件中使用了 AND 条件,

    $this->paginate['conditions']['OR'][] = [
                            'Clients.' . $filter['field'] . ' >=' => $dateRegFrom,
                            'Clients.' . $filter['field'] . ' <=' => $dateRegTo,
                        ];
    

相关问题