laravel的request里的get和input有区别嘛?

public function foo(Request $request)
{
    $foo = $request->get('a');
    
    $foo = $request->input('a');
}

这里用get和input有区别嘛?

阅读 9.6k
3 个回答

不一样。

大概看了下input获取到数组后简单做了下取出操作,
get有一套更完善的取出机制,也有很多抛异常操作。

具体LZ可以去翻翻源代码看看:
input方法在:/vendor/laravel/framework/src/Illuminate/Http/Request.php
get方法在:/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php

PS,我手上目前是4.2

?name=ask&test[][name]=test&age[lilei]=12&age[an]=13

获取二维数组的时候有差别:
$request->get('age.lilei'); // null
$request->input('age.lilei'); // 12

input()会判断http请求方法,如果是get返回query string数据,如果是其他,返回request数据

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏