这篇文章主要介绍Laravel如何同时接收路由参数和查询字符串中的参数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Laravel同时接收路由参数和查询字符串中的参数Laravel捕捉路由参数Laravel允许在co
这篇文章主要介绍Laravel如何同时接收路由参数和查询字符串中的参数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Laravel允许在controller方法中捕捉路由里定义的参数,如下所示:
路由中定义参数:Route::get('post/{id}', 'PostController@content');
控制器方法里捕捉路由参数:
class PostController extends Controller{ public function content($id) { // }}
那在控制器里怎么既能捕捉到路由里定义的参数又能接收到url查询字符串里的参数呢,比如请求链接是这样的Http://example.com.cn/post/1?from=index
引用官网文档的解释
Dependency Injection & Route ParametersIf your controller method is also expecting input from a route parameter you should list your route parameters after your other dependencies.
就是说如果想要在控制器方法注入依赖时仍然能使用路由里的参数,你需要把路由里的参数列举在方法依赖的后面,比如:
<?PHPnamespace App\Http\Controllers;use Illuminate\Http\Request;class PostController extends Controller{ public function content(Request $request, $id) { $from = $request->get('from') }}
此外laravel路由中我们还可以定义多个可选参数:
Route::get('/article/{id}/{source?}/{medium?}/{campaign?}', 'ArticleController@detail')
在控制器方法中可选参数需要定义成默认参数:
public function detail(Request $request, $id, $source = '', $mediun = '', $campaign = '') { // }
这样定义完后路由里URL里可以传递0~3个可选参数,但是必须按照顺序:即想传第二个可选参数那么第一个可选参数必须有。
URL示例:http://example.com.cn/article/1/wx/h6?param1=val1¶m2=val2
在这个例子中"wx"
会传递给变量$source
, "h6"
会传递给变量$medium
以上是“Laravel如何同时接收路由参数和查询字符串中的参数”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!
--结束END--
本文标题: Laravel如何同时接收路由参数和查询字符串中的参数
本文链接: https://lsjlt.com/news/248150.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0