我的路由是查询是打印作业的mysql数据库
http://api.com/prints/
我想根据日期查询结果......
http://api.com/prints/YYYY
或
http://api.com/prints/YYYY/MM
或
http://api.com/prints/YYYY/MM/DD
但使用相同的http://api.com/prints/
路线。每个印刷品都有TIMESTAMP
。
有没有人有如何实现这一目标的好例子?
答案 0 :(得分:0)
我使用查询参数来实现这一点,即:
http://api.com/prints?timestamp=YYYY-MM-DD
答案 1 :(得分:0)
在可选参数上,您需要使用括号:
$app->get('/prints(/:year)(/:month)(/:day)', function ($year = '', $month = '', $day = '') {
printf('%s-%s-%s', $year, $month, $day);
});
答案 2 :(得分:0)
基于当前official Slim documentation中的示例:
$app->get('/prints(/:year(/:month(/:day)))', function ($year = null, $month = null, $day = null) {
if ($day !== null) {
// return daily overview resource
} else if ($month !== null) {
// return monthly overview resource
} else {
// return yearly overview resource
}
// return some error or (better) overview resource on available data / endpoints
});