我正在尝试FriendsOfCake\Search
在 CakePHP 中实现插件。我不能 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() 方法的一部分。它正在尝试将日期时间对象转换为与数据库一起使用的字符串。特别是第 94 行
return $value->format($this->_format);
使用 Cake 3.1.0 版