我试图在CakePHP中实现FriendsOfCake\Search
插件。我并非100%确定我已正确实施了搜索类型,但当我提交表单尝试使用日期搜索时,我收到以下致命错误:
错误:在非对象上调用成员函数format()
我假设在某个地方我的日期没有被格式化为日期对象,但不知道我在哪里需要这样做,如果有的话。以下是我正在使用的代码段。
UsersTable.php - 我的searchConfiguration()
方法
->compare('created_start', [
'field' => $this->aliasField('created')
])
index.ctp - 生成表单
<?= $this->Form->label('created_start') ?>
<?= $this->Form->date('created_start') ?>
我认为这就是全部,我有文本框和选择框作为表单的一部分,它只是我无法启动和运行的日期。
以下是错误消息的堆栈跟踪(我相信这是要求的内容,它是我页面的左侧列。
Cake\Error\BaseErrorHandler->handleFatalError
Core/src/Error/BaseErrorHandler.php, line 90
Cake\Error\BaseErrorHandler->Cake\Error\{closure}
[internal function]
完整的错误块说:
Error: Call to a member function format() on a non-object
File /var/www/<project_name>/vendor/cakephp/cakephp/src/Database/Type/DateTimeType.php
Line: 94
DataTimeType.php的第94行是toDatabase()方法的一部分。它试图将datetime对象转换为与数据库一起使用的字符串。特别是第94行
return $value->format($this->_format);
使用Cake 3.1.0版