Skip to content

Commit 9312bec

Browse files
Correctly fill the $request->request parameter bag on creation
1 parent c17ed88 commit 9312bec

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/Illuminate/Http/Request.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,12 +572,20 @@ public static function createFromBase(SymfonyRequest $request)
572572
{
573573
if ($request instanceof static) return $request;
574574

575-
return (new static)->duplicate(
575+
$content = $request->content;
576+
577+
$request = (new static)->duplicate(
576578

577579
$request->query->all(), $request->request->all(), $request->attributes->all(),
578580

579581
$request->cookies->all(), $request->files->all(), $request->server->all()
580582
);
583+
584+
$request->content = $content;
585+
586+
$request->request = $request->getInputSource();
587+
588+
return $request;
581589
}
582590

583591
/**

tests/Http/HttpRequestTest.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
use Mockery as m;
44
use Illuminate\Http\Request;
5+
use Symfony\Component\HttpFoundation\Request as SymfonyRequest;
56

67
class HttpRequestTest extends PHPUnit_Framework_TestCase {
78

@@ -392,4 +393,23 @@ public function testSessionMethod()
392393
$request->session();
393394
}
394395

396+
397+
public function testCreateFromBase()
398+
{
399+
$body = [
400+
'foo' => 'bar',
401+
'baz' => ['qux'],
402+
];
403+
404+
$server = array(
405+
'CONTENT_TYPE' => 'application/json',
406+
);
407+
408+
$base = SymfonyRequest::create('/', 'GET', array(), array(), array(), $server, json_encode($body));
409+
410+
$request = Request::createFromBase($base);
411+
412+
$this->assertEquals($request->request->all(), $body);
413+
}
414+
395415
}

0 commit comments

Comments
 (0)