2016-09-06 119 views
1

建立一个简单的GET请求似乎抛出一个HTTP错误,这是我到目前为止的代码:Laravel路线错误get请求

链接:

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

路线:

Route::get('/admin/overview/{id}', [ 
    'uses' => '\App\Http\Controllers\[email protected]', 
    '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/overview/from url

+4

您的网址应该是'/管理/概述/ 5'不是'/管理/概述?ID = 5',这可能就是你得到一个404未找到。 – Jonathon

回答

-2

你的url不正确。你应该建立网址是这样的:

/管理/概述/ 2

要做到这一点使用laravel助手功能:

路线( 'account.single',[ '身份证'=> 2])

+1

这正是OP正在做的事情。 –

0

正如Jonathon的评论中提到的那样,您的路线的网址应该按照您的意愿显示为/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\[email protected]', 
    'as'   => 'account.single', 
    'middleware' => ['auth', 'admin'], 
]); 

Route::get('/admin/{some_variable}', [ 
    'uses'  => '\App\Http\Controllers\[email protected]', 
    'as'   => 'account.something', 
    'middleware' => ['auth', 'admin'], 
]);