10

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

4 回答 4

9

文档显示您可以使用 Input::get().

$name = Input::get('name');
于 2014-01-30T05:52:48.957 回答
2

获取所有输入使用Input::all()方法。要检查特定列是否存在,请使用Input::has('column_name')例如。Input::has('name'). 要检索列值,请使用Input::get('column_name')例如。Input::get('name').

于 2014-04-28T07:15:44.360 回答
2

您可以使用以下方法从 url 获取参数:-

request()->urlParam;

如果您想使用以下方式获取 GET 参数:-

$request->get('current-password');

如果您想使用以下方式获取 POST 参数:-

$request->post('current-password');
于 2018-07-16T06:22:13.310 回答
1

在现代 Laravel 安装中,如果您的控制器方法传递了一个实例,Request那么您可以使用. 例如,所有这些都是相同的:

public function update(Request $request, Model $model) {
    $some_var = $_POST["some_var"];
    $some_var = $request->input("some_var");
    $some_var = $request->post("some_var");
    $some_var = $request->some_var;
}

如果您的方法没有传递当前的实例,Request可以使用辅助方法来访问一个。request()

于 2021-03-18T19:31:30.783 回答