5
5
use Closure ;
6
6
use Illuminate \Http \RedirectResponse ;
7
7
use Illuminate \Http \Request ;
8
+ use Illuminate \Support \Arr ;
8
9
9
10
trait Wizardable
10
11
{
@@ -31,14 +32,21 @@ trait Wizardable
31
32
*/
32
33
public function create (Request $ request , $ step = null )
33
34
{
35
+ // Get the query parameters.
36
+ $ parameters = $ request ->query ();
37
+ unset($ parameters ['_trigger ' ]);
38
+ $ resetParam = Arr::pull ($ parameters , '_reset ' );
39
+
34
40
// Reset the wizard cache when passing the `_reset` query parameter.
35
- if ($ request -> query ( ' _reset ' ) === '1 ' ) {
41
+ if ($ resetParam === '1 ' ) {
36
42
$ this ->wizard ()->cache ()->clear ();
37
43
38
44
// Clean up the wizard event.
39
45
$ this ->cleanUpWizard ($ request );
40
46
41
- return $ this ->redirectToLastProcessedStep ($ request , 0 );
47
+ return $ this ->redirectToLastProcessedStep (
48
+ $ request , 0 , $ parameters
49
+ );
42
50
}
43
51
44
52
// Before wizard step create event.
@@ -51,7 +59,7 @@ public function create(Request $request, $step = null)
51
59
// If step is null, redirect to last processed index.
52
60
if (is_null ($ step )) {
53
61
return $ this ->redirectToLastProcessedStep (
54
- $ request , $ lastProcessedIndex
62
+ $ request , $ lastProcessedIndex, $ parameters
55
63
);
56
64
}
57
65
@@ -61,7 +69,7 @@ public function create(Request $request, $step = null)
61
69
if ($ step ->index () !== $ lastProcessedIndex ) {
62
70
// Redirect to last processed step.
63
71
return $ this ->redirectToLastProcessedStep (
64
- $ request , $ lastProcessedIndex
72
+ $ request , $ lastProcessedIndex, $ parameters
65
73
);
66
74
}
67
75
@@ -202,13 +210,14 @@ protected function renderDoneView(Request $request)
202
210
*
203
211
* @param \Illuminate\Http\Request $request
204
212
* @param int $lastProcessedIndex
213
+ * @param array $parameters
205
214
* @return \Illuminate\Http\RedirectResponse
206
215
*/
207
- protected function redirectToLastProcessedStep (Request $ request , int $ lastProcessedIndex )
216
+ protected function redirectToLastProcessedStep (Request $ request , int $ lastProcessedIndex, array $ parameters = [] )
208
217
{
209
218
$ lastProcessedStep = $ this ->wizard ()->stepRepo ()->get ($ lastProcessedIndex );
210
219
211
- return $ this ->redirectToStep ($ lastProcessedStep ->slug (), false );
220
+ return $ this ->redirectToStep ($ lastProcessedStep ->slug (), false , $ parameters );
212
221
}
213
222
214
223
/**
@@ -227,11 +236,12 @@ protected function canValidate(Request $request)
227
236
*
228
237
* @param string|\Ycs77\LaravelWizard\Step|null $step
229
238
* @param bool $setLastIndex
239
+ * @param array $parameters
230
240
* @return \Illuminate\Http\RedirectResponse
231
241
*/
232
- protected function redirectToStep ($ step = null , $ setLastIndex = true )
242
+ protected function redirectToStep ($ step = null , $ setLastIndex = true , array $ parameters = [] )
233
243
{
234
- return $ this ->wizard ()->redirectToStep ($ step , $ setLastIndex );
244
+ return $ this ->wizard ()->redirectToStep ($ step , $ setLastIndex, $ parameters );
235
245
}
236
246
237
247
/**
@@ -241,11 +251,12 @@ protected function redirectToStep($step = null, $setLastIndex = true)
241
251
*
242
252
* @param string|\Ycs77\LaravelWizard\Step|null $step
243
253
* @param bool $setLastIndex
254
+ * @param array $parameters
244
255
* @return \Illuminate\Http\RedirectResponse
245
256
*/
246
- protected function redirectTo ($ step = null , $ setLastIndex = true )
257
+ protected function redirectTo ($ step = null , $ setLastIndex = true , array $ parameters = [] )
247
258
{
248
- return $ this ->redirectToStep ($ step , $ setLastIndex );
259
+ return $ this ->redirectToStep ($ step , $ setLastIndex, $ parameters );
249
260
}
250
261
251
262
/**
0 commit comments