从Laravel请求中仅选择非文件参数

时间:2016-09-26 10:10:48

标签: php laravel laravel-5

对于我的一个Laravel Web应用程序,我想以 Json格式记录数据库中的所有请求参数(Post以及Get),因为我正在使用$request->all()方法,当用户尝试上传任何文件时会导致异常。

这就是为什么我想要一种方法从请求中选择Serializable Parameters(用于get和post请求)或者选择除文件之外的所有请求参数的方法。

Request::except([])对我不起作用,因为在Except方法中我们必须提供文件参数名称。

3 个答案:

答案 0 :(得分:2)

在我的项目中,我使用了这个,除了下面的许多字段,

 $input = $request->except('first_name', 'middle_name', 'last_name', 'address',...);     

这对我来说很好。
  我将所有保留值存储到 $ input 并存储该输入变量的值。

请试试这个。

答案 1 :(得分:1)

在您的情况下,请将此调试代码用于测试一次,可能您希望它在您当前的工作中使用

$allRequestParams = array_map(function($input) {
        return !is_array($input) ? $input : false;
    }, $request->all());
    echo '<pre>';
    print_r($allRequestParams);
    echo '<pre/>';
    die;

答案 2 :(得分:1)

由于任何答案对我都不起作用,我做了很多阅读和一些关于laravel的挖掘但是我找不到我想要的具体解决方案,所以我做了一个小小的黑客,而不是使用Laravel的请求对象和拉取参数从那里我只使用PHP的内置$_REQUEST参数。

例如

$non_file_parameters = $_REQUEST;

$_REQUEST除了文件参数coz在核心PHP中有文件参数coz以及$_FILES超全局变量的文件时,

if (typeof object[key] === 'number') { 将包含Get和Post参数。

谢谢你们的努力...