设置一个简单的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
正如Jonathon的评论中提到的,你的路由的url应该显示为/admin/overview/5
,而不是/admin/overview?id=5
。
要确定问题,您需要:
- 仔细检查你没有看到缓存的路由-在命令行中运行:
- 检查你的路由,以确保你没有击中
routes.php
文件上的另一条路由,例如admin/{some_variable}
。你可以使用php artisan route:list
查看Laravel正在寻找的路由列表 - 如果你发现另一条路由导致问题,调整你的
routes.php
文件中的顺序,将更具体的路由放在更少具体的路由之上(示例如下)。
php artisan route:clear
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])