Skip to content

Commit b0c2459

Browse files
committed
move clone logic
1 parent 625f4f7 commit b0c2459

File tree

2 files changed

+34
-30
lines changed

2 files changed

+34
-30
lines changed

src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php

+1-30
Original file line numberDiff line numberDiff line change
@@ -32,38 +32,9 @@ public function boot()
3232
});
3333

3434
$this->app->resolving(FormRequest::class, function ($request, $app) {
35-
$this->initializeRequest($request, $app['request']);
35+
$request = FormRequest::createFrom($app['request'], $request);
3636

3737
$request->setContainer($app)->setRedirector($app->make(Redirector::class));
3838
});
3939
}
40-
41-
/**
42-
* Initialize the form request with data from the given request.
43-
*
44-
* @param \Illuminate\Foundation\Http\FormRequest $form
45-
* @param \Symfony\Component\HttpFoundation\Request $current
46-
* @return void
47-
*/
48-
protected function initializeRequest(FormRequest $form, Request $current)
49-
{
50-
$files = $current->files->all();
51-
52-
$files = is_array($files) ? array_filter($files) : $files;
53-
54-
$form->initialize(
55-
$current->query->all(), $current->request->all(), $current->attributes->all(),
56-
$current->cookies->all(), $files, $current->server->all(), $current->getContent()
57-
);
58-
59-
$form->setJson($current->json());
60-
61-
if ($session = $current->getSession()) {
62-
$form->setLaravelSession($session);
63-
}
64-
65-
$form->setUserResolver($current->getUserResolver());
66-
67-
$form->setRouteResolver($current->getRouteResolver());
68-
}
6940
}

src/Illuminate/Http/Request.php

+33
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,39 @@ protected function getInputSource()
343343
return $this->getRealMethod() == 'GET' ? $this->query : $this->request;
344344
}
345345

346+
/**
347+
* Create a new request instance from the given Laravel request.
348+
*
349+
* @param \Illuminate\Http\Request $from
350+
* @param \Illuminate\Http\Request|null $to
351+
* @return static
352+
*/
353+
public static function createFrom(Request $from, $to = null)
354+
{
355+
$request = $to ?: new static;
356+
357+
$files = $from->files->all();
358+
359+
$files = is_array($files) ? array_filter($files) : $files;
360+
361+
$request->initialize(
362+
$from->query->all(), $from->request->all(), $from->attributes->all(),
363+
$from->cookies->all(), $files, $from->server->all(), $from->getContent()
364+
);
365+
366+
$request->setJson($from->json());
367+
368+
if ($session = $from->getSession()) {
369+
$request->setLaravelSession($session);
370+
}
371+
372+
$request->setUserResolver($from->getUserResolver());
373+
374+
$request->setRouteResolver($from->getRouteResolver());
375+
376+
return $request;
377+
}
378+
346379
/**
347380
* Create an Illuminate request from a Symfony instance.
348381
*

0 commit comments

Comments
 (0)