如何将参数从 Controller 传递到路由。例如,在我的 Controller 中,我想将用户重定向到路线并将 ?userID=xyz 附加到路线。我该怎么做? 所以在我的 Controller 中
public function mymethod(){
return route('getmydata', ['data'=> 1]);
}
我有一条名为 getmydata 的路线
Route::get('/data/{data}', function (Request $request, $data) {
...
})->name('getmydata');
我如何在 Controller 中传递?userID,以便我的路线可以是/data/{data}?userID=xyz
谢谢
编辑仍然不起作用:
我的 Controller :
public function mymethod(){
$userID = xyz;
return route('getmydata', ['data'=> 1, 'userID' => $userID]);
}
然后在我的 route :
Route::get('/data/{data}/', function ($data, $userID) {
...
})->name('getmydata');
我懂了
"Too few arguments to function App\\Providers\\RouteServiceProvider
我正在传递两个参数并期望两个。我错过了什么?
路线应该是/data/{data}?userID=xyz
最佳答案
您可以通过以下方式将参数从 Controller 传递到路由:
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
更新:如果您想要这样的URL http://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
关于Laravel 将 url 参数从 Controller 传递到路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64351160/