路由 Route::match(['get', 'post'], '/test/{test}', 'AddCluesController@index'); // 添加线索
控制器:
public function index(Request $request)
{
echo $request->input('post'); // null
print_r($request->all()); // []
}
文档中:
获取指定输入值
使用几种简单的方法(不需要特别指定哪个 HTTP 动作),就可以访问 IlluminateHttpRequest 实例中所有的用户输入。也就是说无论是什么样的 HTTP 动作,input 方法都可以被用来获取用户输入数据。
是我的理解有误吗??
Route::match(['get', 'post'], '/test/{test}', 'AddCluesController@index');
把
get
和post
交给同一个控制器同一个方法,不是推荐的方法。假设目前你确实要这样写,无论是 get 还是 post ,你要获取到 url
/test/{test}
中的{test}
的值,有两种办法:1.在 index 方法中指定,如下:
2.通过
request()->route('test');
方法。其他
对于 GET 请求,如果你是要获取 url (
http://www.baidu.com?q=xx&b=xxx
)中 ? 后的参数,是可以使用request()->all()
获取到的。对于 POST 请求,你要获取到 form 中的所有用户的输入,通过
request()->all()
也是能获取到的。当然,你可以通过
request()->input(['key1','key2']);
的方式来获取指定内容。具体的多看下文档和源码,就清楚了。