コード例 #1
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure                 $next
  * @param  string|null              $guard
  *
  * @return mixed
  */
 public function handle($request, Closure $next, $guard = null)
 {
     // Send a forbidden status if wizard should not be triggered
     if (TriggerHelper::hasWizardCompleted()) {
         return $this->forbiddenResponse();
     }
     // Get the current step from the route slug
     $currentStepSlug = $request->route()->getParameter('slug', '');
     \SetupWizard::initialize($currentStepSlug);
     // Share common data with our views
     view()->share('currentStep', \SetupWizard::currentStep());
     view()->share('allSteps', \SetupWizard::steps());
     // Proceed as usual
     return $next($request);
 }
コード例 #2
0
 /**
  * Apply current step and move on to next step
  *
  * @param Request $request
  *
  * @return Response
  */
 protected function nextStep(Request $request)
 {
     // Apply the current step. If success, we can redirect to next one
     $currentStep = \SetupWizard::currentStep();
     if (!$currentStep->apply($request->all())) {
         return view()->make('setup_wizard::steps.default', ['errors' => $currentStep->getMessageBag()]);
     }
     // If we have a next step, go for it. Else we redirect to somewhere else
     try {
         $nextStep = \SetupWizard::nextStep();
         return redirect()->route('setup_wizard.show', ['slug' => $nextStep->getSlug()]);
     } catch (StepNotFoundException $e) {
         $finalRouteName = config('setup_wizard.routing.success_route', '');
         if (!empty($finalRouteName)) {
             return redirect()->route($finalRouteName);
         }
         $finalRouteUrl = config('setup_wizard.routing.success_url', '');
         if (!empty($finalRouteUrl)) {
             return redirect()->to($finalRouteUrl);
         }
         return redirect('/');
     }
 }