在 route.php 中,我定义了一个到 Controller 的路由,上面有 2 个标记。
Route::get('/{category}/{slug}', 'projectController@detail');
一切正常,直到调用具有相同结构但与必须被下面所示的路由捕获的 URL 无关的 URL。
所以当我有例如 "/admin/tags"
时,下面的 Controller 被触发,因为它具有与 "/{category}/{slug}"相同的结构
当然它给了我一个错误,因为它没有找到一个变量。
所以现在我解决了在底部移动该路由的问题,但我相信我必须提前做一些事情来防止这种行为,因为如果我有多个具有不同 token 的路由,那么每次都会触发所有内容并且会有一团糟。
那么,在这些情况下它应该做什么?
附言我是 Laravel 的 super 初学者
最佳答案
对路线使用一些约束,引用parameters-regular-expression-constraints .例如:
Route::get('user/{name}', function ($name) {
//
})
->where('name', '[A-Za-z]+');
或者您可以在不具体之前先做最具体的。例如,在这个序列中:
Route::get("/admin/tags", '......');
Route::get('/{category}/{slug}', 'projectController@detail');
关于php - URL 打错 Controller LARAVEL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41176638/