Laravel将URL参数从控制器传递到路由 [英] Laravel pass url parameter from controller to route

查看:70
本文介绍了Laravel将URL参数从控制器传递到路由的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将参数从控制器传递到路由.例如,在我的控制器中,我想将用户重定向到路由,还要将?userID = xyz附加到路由.我该怎么做?所以在我的控制器中

How can you pass a parameter from controller to route. For example, in my controller i want to redirect the user to a route and also attach ?userID=xyz to the route. How can I do it? So in my controller

public function mymethod(){
  return route('getmydata', ['data'=> 1]);
}

我有一个名为getmydata的路由

I have a route named getmydata

Route::get('/data/{data}', function (Request $request, $data) {
    ...
})->name('getmydata');

我如何在控制器中传递?userID,以便我的路由可以是/data/{data}?userID = xyz

How would i pass ?userID in my controller so my route can be /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

我传递了两个参数,并期望有两个.我想念什么?

I'm passing two parameters and expecting two. What am i missing?

路由应为/data/{data}?userID = xyz

the route should be /data/{data}?userID=xyz

推荐答案

您可以通过以下方式将参数从控制器传递给 route :

You can pass parameter from controller to route in this way :

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 ,则可以通过通过路由传递额外的参数:

Updated : If you want URL like this http://127.0.0.1:8000/data/{data}?userID=xyz, then can do it by passing extra parameter with the route :

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参数从控制器传递到路由的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆