在Slim 3中,我有一条带有命名路径的路线
$app->get('/admin/edit-course/{id}', '\AdminController:edit_course')->setName('/admin/edit-course');
如果我尝试使用我的模板中的路由器对象来访问它,那么......
var_dump($router->pathFor('/admin/edit-course'));
...我收到了一个应用程序错误:
超薄应用程序错误
由于以下错误,应用程序无法运行:
输入:InvalidArgumentException
消息:URL段缺少数据:id
这是为什么?我想要的只是路由器将URL输出到AdminController:edit_course
功能。它适用于我的其他路由,但这些路由没有传递到URL中的参数,例如ID。
答案 0 :(得分:2)
因为你在路线上定义了" / admin / edit-course / {id}"
所以它正在寻找id并且无法获得它。
pathFor('<< route name >>', ['id' => 0]);
这是语法,因此您需要传递id。
如果您不想传递ID,则需要添加另一条没有参数的路径
$app->get('/admin/edit-course', '\AdminController:edit_course')
->setName('/admin/edit-course');