我一直在网上搜索如何在控制器中获取POST数据,到目前为止,我找到了两个解决方案:Input::get()
和$_POST
。
Input::get()
的评论内容为:
/ **
* Gets a "parameter" value. * * This method is mainly useful for libraries that want to provide some flexibility. * * Order of precedence: GET, PATH, POST * * Avoid using this method in controllers: * * * slow * * prefer to get from a "named" source * * It is better to explicitly get request parameters from the appropriate * public property instead (query, attributes, request). * * @param string $key the key * @param mixed $default the default value * @param Boolean $deep is parameter deep in multidimensional array * * @return mixed */
他们所指的这个“命名”来源是什么?我应该使用什么而不是Input::get()
?
答案 0 :(得分:9)
documentation表示您可以使用Input::get()
检索任何HTTP谓词的输入值。
$name = Input::get('name');
答案 1 :(得分:2)
使用Input::all()
方法获取所有输入。
要检查特定列是否存在,请使用Input::has('column_name')
,例如Input::has('name')
。
要检索列值,请使用Input::get('column_name')
,例如。 Input::get('name')
。
答案 2 :(得分:2)
您可以使用:-
从网址获取参数request()->urlParam;
如果要使用:-
获取GET参数$request->get('current-password');
如果要使用:-
获取POST参数$request->post('current-password');
答案 3 :(得分:0)
在现代 Laravel 安装中,如果您的控制器方法传递了一个 Request
实例,那么 you can use that。例如,所有这些都是相同的:
public function update(Request $request, Model $model) {
$some_var = $_POST["some_var"];
$some_var = $request->input("some_var");
$some_var = $request->some_var;
}
如果您的方法未传递当前 Request
的实例,您可以使用 the request()
helper method 访问一个。