pathFor 在 Slim Framework 3 中不起作用

pathFor not working in Slim Framework 3

在 Slim 3 中,我有一个带有命名路径的路由

$app->get('/admin/edit-course/{id}', '\AdminController:edit_course')->setName('/admin/edit-course');

如果我像这样尝试使用模板中的路由器对象访问它...

var_dump($router->pathFor('/admin/edit-course'));

...我收到应用程序错误:

Slim 应用程序错误

由于以下错误,应用程序无法 运行:

类型:InvalidArgumentException

消息:URL 段缺少数据:id

这是为什么?我想要的只是路由器将 URL 输出到 AdminController:edit_course 函数。它适用于我的其他路线,但这些路线没有传递到 URL.

的参数,例如 ID

因为在 get route 中你定义了“/admin/edit-course/{id}”

所以它正在寻找 id 但无法获取它。

pathFor('<< route name >>', ['id' => 0]);

这是语法,因此您需要传递 id。

如果你不想传递id那么你需要添加另一条没有参数的路由

$app->get('/admin/edit-course', '\AdminController:edit_course')
->setName('/admin/edit-course');