Slim 3方法getUploadedFiles()返回一个空数组

时间:2017-11-18 18:34:01

标签: php slim

当试图用测试文件模拟测试时,我遇到了困难。基本上withUploadedFiles()方法要我使用数组。 正如您在下面看到的那样,我尝试var_dump查看它是否有效,但在每种情况下数组都是空的。我想知道为什么会这样? 如果我只var_dump我的名为$uploadedFiles的数组,它会向我显示内容。

你知道我的错误在哪里吗?

<?php

use Slim\Http\UploadedFile;

class FileControllerTest extends PHPUnit_Framework_TestCase
{
    // ...

    public function testUserCanCreateAFileSuccessfullyWithStatusCode200()
    {
        // ...

        $uploadedFile = new UploadedFile(
            $directory . '/File_1.txt',
            'File_1.txt',
            'text/plain',
            filesize($directory . '/File_1.txt'),
            0
        );

        $uploadedFiles = array();
        $uploadedFiles["file"] = $uploadedFile;

        // ...

        $request = \Slim\Http\Request::createFromEnvironment($environment);
        $request->withUploadedFiles($uploadedFiles);    

        var_dump($request->getUploadedFiles());         // array(0) { }

        // ...
    }
}

1 个答案:

答案 0 :(得分:2)

由于请求是不可变的,因此在操作它时总是会创建一个新实例...

 $request = $request->withUploadedFiles($uploadedFiles);