Laravel路由错误获取请求


Laravel routes error get request

设置一个简单的get请求似乎抛出一个http错误,这是我到目前为止的代码:

链接:

<a href="{{ route('account.single', ['id' => $account->id]) }}">

路线:

Route::get('/admin/overview/{id}', [
    'uses' => ''App'Http'Controllers'AdminController@getSingle',
    'as' => 'account.single',
    'middleware' => ['auth', 'admin'],
]); 

url显示为- admin/overview?id=5

控制器:

public function getSingle($id)
{
    return view('admin.account');
}

这是我得到的错误- notFoundHttpException in RouteCollection.php line 161:

注意,如果我从路由url中删除/overview/,因此它显示为/admin/{id},它工作,但get请求没有找到id,它从url

找到/overview/

正如Jonathon的评论中提到的,你的路由的url应该显示为/admin/overview/5,而不是/admin/overview?id=5


要确定问题,您需要:

    仔细检查你没有看到缓存的路由-在命令行中运行:php artisan route:clear
  • 检查你的路由,以确保你没有击中routes.php文件上的另一条路由,例如admin/{some_variable}。你可以使用php artisan route:list查看Laravel正在寻找的路由列表
  • 如果你发现另一条路由导致问题,调整你的routes.php文件中的顺序,将更具体的路由放在更少具体的路由之上(示例如下)。

Route::get('/admin/overview/{id}', [
    'uses'       => ''App'Http'Controllers'AdminController@getSingle',
    'as'         => 'account.single',
    'middleware' => ['auth', 'admin'],
]); 
Route::get('/admin/{some_variable}', [
    'uses'       => ''App'Http'Controllers'AdminController@getSomething',
    'as'         => 'account.something',
    'middleware' => ['auth', 'admin'],
]);

您的url不正确。你应该像这样构建url:

/admin/概述/2

使用laravel辅助函数:

路线("账户。Single ', ['id' => 2])