如何在 FriendsOfCake/Search 插件中搜索日期时间类型?
How to search type datetime in FriendsOfCake/Search plugin?
我确实使用了 FriendsOfCake/Search plugin,一切都很好,直到我搜索创建的日期时间。
当我提交搜索表单时,创建的变量变为 http://localhost:8765/admin/logs?created=2015%2F10%2F10
,我找不到任何记录。
如何使用 FriendsOfCake/Search plugin 搜索日期时间类型?
好吧,我找到了答案。
在FriendsOfCake/search插件中,它们支持几种类型的搜索:价值、查找、喜欢、自定义、比较。
我选择使用在 TableClass 中定义我的查找器,例如:
public function findCreated(Query $query, array $options) {
if (!empty($options['created'])) {
return $query->where(['Logs.created >=' => $options['created']]);
}
return $query->where(['Logs.created >= (CURDATE() - 10)']);
}
然后在我设置 searchConfiguration 以调用 findCreated:
public function searchConfiguration() {
$search->finder('created');
return $search;
}
那么,它的工作。
如果有人有更好的解决方案,请post在这里回答。
谢谢。
我找到了另一种方法
在搜索插件中使用回调函数:
最新版本 1.2.3 FoC Search
$this->searchManager()
->add('id', 'Search.Value')
->add('role_id', 'Search.Value')
->add('email', 'Search.like', [
'before' => true,
'after' => true,
'field' => [$this->aliasField('email')]
])
->add('full_name', 'Search.Like', [
'before' => true,
'after' => true,
'field' => [$this->aliasField('full_name')]
])
->add('created', 'Search.Callback', [
'callback' => function($query, $args, $manager) {
return $query->andWhere(["Users.created >=" => new FrozenTime($args['created'])]);
}
]);
在视图中,使用datepicker
我确实使用了 FriendsOfCake/Search plugin,一切都很好,直到我搜索创建的日期时间。
当我提交搜索表单时,创建的变量变为 http://localhost:8765/admin/logs?created=2015%2F10%2F10
,我找不到任何记录。
如何使用 FriendsOfCake/Search plugin 搜索日期时间类型?
好吧,我找到了答案。
在FriendsOfCake/search插件中,它们支持几种类型的搜索:价值、查找、喜欢、自定义、比较。
我选择使用在 TableClass 中定义我的查找器,例如:
public function findCreated(Query $query, array $options) {
if (!empty($options['created'])) {
return $query->where(['Logs.created >=' => $options['created']]);
}
return $query->where(['Logs.created >= (CURDATE() - 10)']);
}
然后在我设置 searchConfiguration 以调用 findCreated:
public function searchConfiguration() {
$search->finder('created');
return $search;
}
那么,它的工作。
如果有人有更好的解决方案,请post在这里回答。
谢谢。
我找到了另一种方法
在搜索插件中使用回调函数:
最新版本 1.2.3 FoC Search
$this->searchManager()
->add('id', 'Search.Value')
->add('role_id', 'Search.Value')
->add('email', 'Search.like', [
'before' => true,
'after' => true,
'field' => [$this->aliasField('email')]
])
->add('full_name', 'Search.Like', [
'before' => true,
'after' => true,
'field' => [$this->aliasField('full_name')]
])
->add('created', 'Search.Callback', [
'callback' => function($query, $args, $manager) {
return $query->andWhere(["Users.created >=" => new FrozenTime($args['created'])]);
}
]);
在视图中,使用datepicker