从控制器到路由的Laravel传递url参数
如何将参数从控制器传递到路由。例如,在我的控制器中,我希望将用户重定向到路由,并将?userID=xyz附加到路由。我怎么做? 所以在我的控制器里从控制器到路由的Laravel传递url参数,laravel,url,routes,Laravel,Url,Routes,如何将参数从控制器传递到路由。例如,在我的控制器中,我希望将用户重定向到路由,并将?userID=xyz附加到路由。我怎么做? 所以在我的控制器里 public function mymethod(){ return route('getmydata', ['data'=> 1]); } 我有一个名为getmydata的路由 Route::get('/data/{data}', function (Request $request, $data) { ... })->n
public function mymethod(){
return route('getmydata', ['data'=> 1]);
}
我有一个名为getmydata的路由
Route::get('/data/{data}', function (Request $request, $data) {
...
})->name('getmydata');
如何在控制器中传递?userID,以便我的路由可以是/data/{data}?userID=xyz
谢谢
编辑仍不工作:
我的控制器:
public function mymethod(){
$userID = xyz;
return route('getmydata', ['data'=> 1, 'userID' => $userID]);
}
然后在我的路线上:
Route::get('/data/{data}/', function ($data, $userID) {
...
})->name('getmydata');
我要走了
"Too few arguments to function App\\Providers\\RouteServiceProvider
我正在传递两个参数,期望两个。我错过了什么
路由应该是/data/{data}?userID=xyz您应该在
queryparams
上传递它,并通过$request
对象检索它们
Route::get('/data/{data}',函数(Request$Request$data){
$userID=$request->userID;//或$request->get('userID'))
})->名称('getmydata');
您可以通过以下方式将参数从控制器传递到路由:
return redirect()->route('getmydata', ['data'=> 1]);
// 127.0.0.1:8000/data/1
使用GET
参数:
return redirect()->route('getmydata', ['data' => 1]);
// 127.0.0.1:8000/data?data=1
已更新:如果您想要这样的URLhttp://127.0.0.1:8000/data/{data}?userID=xyz
,然后可以通过向路由传递额外参数来完成此操作:
Route::get('/data/{data}', function (Request $request, $data) { ... })->name('getmydata');
return redirect()->route('getmydata', ['data'=> 1, 'userID' => 'xyz']);
// 127.0.0.1:8000/data/1?userID=xyz