在日期范围内过滤
Filtering in date range
我尝试构建自定义搜索表单并过滤某些日期范围内的结果:
$form = BootstrapForm::create (
$this,
'LetterSearchForm',
FieldList::create (
DateField::create('Sent_After','Sent After'),
DateField::create('Sent_Befor','Sent Before')
...
),
...
);
public function index (SS_HTTPRequest $request)
{
$letters = Letter::get()->sort('DateUpload');
if($search = $request->getVar('Sender')) {
$letters = $letters->filter(array(
'Sender:PartialMatch' => $search
));
}
if ( $search1 = $request->getVar('Sent_After') && $search2 = $request->getVar('Sent_Befor'))
{
What must be here?
}
}
}
我可以在这里使用 WithinRangeFilter 之类的东西吗?
我不知道任何范围过滤器,但根据 the documentation 你可以使用类似的东西:
$dateFilteredList = $letters->filter(array(
'DateUpload:LessThanOrEqual' => $search2, // Sent_Befor
'DateUpload:GreaterThanOrEqual' => $search1 // Sent_After
));
我对上面的代码做了一些假设:
DateUpload
是您要筛选的日期字段。
- 表格提供的日期格式已经是数据库友好的,即 yyyy-mm-dd(例如 2017-09-05)
您可能需要进行相应的编辑。
希望这就是您要找的:)
我尝试构建自定义搜索表单并过滤某些日期范围内的结果:
$form = BootstrapForm::create (
$this,
'LetterSearchForm',
FieldList::create (
DateField::create('Sent_After','Sent After'),
DateField::create('Sent_Befor','Sent Before')
...
),
...
);
public function index (SS_HTTPRequest $request)
{
$letters = Letter::get()->sort('DateUpload');
if($search = $request->getVar('Sender')) {
$letters = $letters->filter(array(
'Sender:PartialMatch' => $search
));
}
if ( $search1 = $request->getVar('Sent_After') && $search2 = $request->getVar('Sent_Befor'))
{
What must be here?
}
}
}
我可以在这里使用 WithinRangeFilter 之类的东西吗?
我不知道任何范围过滤器,但根据 the documentation 你可以使用类似的东西:
$dateFilteredList = $letters->filter(array(
'DateUpload:LessThanOrEqual' => $search2, // Sent_Befor
'DateUpload:GreaterThanOrEqual' => $search1 // Sent_After
));
我对上面的代码做了一些假设:
DateUpload
是您要筛选的日期字段。- 表格提供的日期格式已经是数据库友好的,即 yyyy-mm-dd(例如 2017-09-05)
您可能需要进行相应的编辑。
希望这就是您要找的:)