php - laravel中如何区分get数据和post数据

查看:87
本文介绍了php - laravel中如何区分get数据和post数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

可能有时候会碰到这样的场景:

有一个post提交请求,请求地址为:xxx?id=10,提交的post数据为:id=20
而在控制器中,我要同时得到get和post中数据
get中的id为10,而post中的id为20

这两个id分别要如何取出来?

====================

结合 @As 和 @冰糖雪梨 两位的回答,总结一下:

一、仅只取get数据(两种)
$request->query->get('name', '未设值')
$request->query('name', '未设值')

二、仅只取post数据(一种)
$request->request->get('name', '未设值')

三、get和post一起取,同名post覆盖get(三种)
$request->input('name', '未设值')
$request->name
$request->get('name', '未设值')

最后顺便吐槽一下这个优雅的框架

解决方案

// 路由
route::any('input', 'YourController@input')

// 测试方法
public function input(Request $request)
{
    // get方法
    echo $request->get('id');
    // get方法
    echo $request->query('id');
    // get方法
    echo $request->query->get('id');
    // 有post会覆盖get improve by amu(题主)
    echo $request->id;
    // 有post会覆盖get
    echo $request->input('id');
}

通过测试,一般情况下,如果post/get键名一样,post过来的数据,$request->xxx和$request->input('xxx')会覆盖掉get的取值。

这篇关于php - laravel中如何区分get数据和post数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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