在Laravel 4中检索控制器内的GET和POST数据

时间:2013-09-12 10:18:42

标签: php laravel laravel-4

我一直在网上搜索如何在控制器中获取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()

4 个答案:

答案 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 访问一个。