Laravel控制器中如何获取路由必填参数?
在Laravel控制器中获取路由必填参数的几种方法
如果你的路由定义是/route/{param},访问/route/123时要获取参数值123,可以用以下几种直接的方式,不必局限于路由模型绑定:
1. 直接在控制器方法参数中声明参数名
这是最直观的写法,无需依赖Request实例:
public function some_method($param) { // $param 的值就是 123 dd($param); }
2. 通过Request实例获取
如果已经注入了Request对象,可调用route()方法指定参数名来获取:
use Illuminate\Http\Request; public function some_method(Request $request) { $param = $request->route('param'); // 也可以一次性获取所有路由参数: // $allRouteParams = $request->route()->parameters(); }
3. 使用request()全局助手函数
不需要注入Request类,直接用全局助手函数就能拿到参数:
public function some_method() { // 方式一:通过route方法指定参数名 $param = request()->route('param'); // 方式二:直接通过参数名获取(和获取普通请求参数写法一致) $param = request('param'); }
路由模型绑定是需要直接获取对应模型实例时的便捷方案,但如果只需要参数的原始值,上面几种方法都足够简单高效。
内容的提问来源于stack exchange,提问作者pileup
相关产品推荐
相关产品推荐

