CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

18 April, 2022

Multi-step Forms for Laravel

 Programing Coderfunda     April 18, 2022     Laravel, Packages     No comments   

 Arcanist is a package by Kai Sassnowski that takes the pain out of building multi-step form wizards in Laravel. Arcanist is a new package that requires both Laravel 8 and PHP 8:

Arcanist provides a simple yet powerful approach for adding multi-step form wizards to your Laravel application. It takes care of all the boring details so you can spend your time writing features, not boilerplate.

From the documentation page, the main features of this package include:

  • Automatically registering all necessary routes for a wizard
  • Form validation
  • Persisting data between steps
  • Keeping track of which steps have already been completed
  • Resuming wizards at the last unfinished step

Setting up multi-step forms can become quite complex quickly. Using this package, you'll have to work with a few classes, such as the overall “wizard” class and the “steps” classes.

Here’s a look at a wizard class for user registration to give you a visual:

1namespace App\Wizards\Registration;
2 
3use Arcanist\AbstractWizard;
4use Illuminate\Http\Request;
5 
6class RegistrationWizard extends AbstractWizard
7{
8 public static string $title = 'Registration';
9 
10 public static string $slug = 'registration';
11 
12 public string $onCompleteAction = RegistrationAction::class;
13 
14 protected array $steps = [
15 //
16 ];
17 
18 public static function middleware(): array
19 {
20 return [];
21 }
22 
23 public function sharedData(Request $request): array
24 {
25 return [];
26 }
27}

Once you register the above wizard in the package’s configuration file, the package registers associated routes. As you can see above, the $steps property houses the wizard steps in an array. Here’s what a step might look like:

1namespace App\Wizards\Registration\Steps;
2 
3use Arcanist\Field;
4use Arcanist\WizardStep;
5use Illuminate\Http\Request;
6 
7class UsernameAndPasswordStep extends WizardStep
8{
9 public string $title = 'Username And Password';
10 
11 public string $slug = 'username-and-password';
12 
13 public function viewData(Request $request): array
14 {
15 return $this->withFormData();
16 }
17 
18 protected function fields(): array
19 {
20 return [
21 Field::make('username')
22 ->rules(['required', 'unique:users,username']),
23 
24 Field::make('password')
25 ->rules(['required', 'confirmed', 'string', 'min:12']),
26 ];
27 }
28}

While we wanted to give you a visual of what the code for a step looks like, you’ll need to read through the getting started documentation to dive deeper into actions, views, and tying everything together.

To learn more about this package, check out the Arcanist documentation. The source code is available as open-source on GitHub. Please note that the documentation is still a work-in-progress.


  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Write API Integrations in Laravel and PHP Projects with Saloon
    Write API Integrations in Laravel and PHP Projects with Saloon Saloon  is a Laravel/PHP package that allows you to write your API integratio...
  • Credit card validation in laravel
      Validation rules for credit card using laravel-validation-rules/credit-card package in laravel Install package laravel-validation-rules/cr...
  • iOS 17 Force Screen Rotation not working on iPAD only
    I have followed all the links on Google and StackOverFlow, unfortunately, I could not find any reliable solution Specifically for iPad devic...
  • Fast Excel Package for Laravel
      Fast Excel is a Laravel package for importing and exporting spreadsheets. It provides an elegant wrapper around Spout —a PHP package to ...
  • C++ in Hindi Introduction
    C ++ का परिचय C ++ एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज है। C ++ को Bjarne Stroustrup द्वारा विकसित किया गया था। C ++ में आने से पह...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda