Slim Framework 一种路由不同的方法

Slim Framework One route different methods

我正在尝试为字典应用构建一个简单的 REST API。我想要两个 GET 方法,它们可以通过 id 和 query(string) 获取单词。问题在于 Slim 框架通过第一种方法路由所有内容,而忽略了第二种方法。我明白它为什么这样做,我知道你可以使用查询字符串参数,但我希望有一种方法可以用这种方式完成它。感谢您的帮助。

http://localhost:5000/dictionary_api/words/1
$app->get('/words/:id', function($id) use ($app, $db) {
});


http://localhost:5000/dictionary_api/words/hello
$app->get('/words/:word', function($word) use ($app,$db){
});

您可以提供一组条件(正则表达式匹配),以便路由参数仅匹配特定格式。尝试以下

$app->get('/words/:id', function($id) use ($app, $db)
{
    //
})->conditions(['id' => '[0-9]+']);

这将使 :id 参数仅匹配数值,不匹配任何其他值并跳到下一条路线。