PHP code example of digitalisstudios / slick-forms

1. Go to this page and download the library: Download digitalisstudios/slick-forms library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

digitalisstudios / slick-forms example snippets


use DigitalisStudios\SlickForms\Models\CustomForm;

// Create a form
$form = CustomForm::create([
    'name' => 'Lead Capture Form',
    'description' => 'Collect leads from landing page',
    'is_active' => true,
]);

// Add fields
$form->fields()->create([
    'field_type' => 'email',
    'label' => 'Email Address',
    'name' => 'email',
    'is_

return [
    // Enable/disable package routes
    'load_routes' => true,

    // Layout to extend for full-page views
    'layout' => 'layouts.app',

    // File upload settings
    'uploads' => [
        'disk' => 'public',
        'max_size' => 10240, // KB
    ],

    // Enable conditional logic
    'conditional_logic_enabled' => true,

    // V2: Email notifications
    'email' => [
        'enabled' => true,
        'queue' => true,
    ],

    // V2: Spam protection
    'spam' => [
        'honeypot' => ['enabled' => true],
        'rate_limiting' => ['enabled' => true],
    ],

    // V2: Webhooks
    'webhooks' => [
        'enabled' => true,
        'queue' => true,
    ],
];

// config/slick-forms.php
'routes' => [
    'prefix' => 'admin/forms',  // Changed from 'slick-forms'
    // ...
],

// config/slick-forms.php
'routes' => [
    'segments' => [
        'builder' => 'editor',        // /admin/forms/editor/x9kL2p
        'manage' => 'dashboard',       // /admin/forms/dashboard
        'submissions' => 'responses',  // /admin/forms/responses/x9kL2p
        // ... customize any segment
    ],
],

// config/slick-forms.php
'routes' => [
    'middleware' => [
        'admin' => ['web', 'auth', 'role:admin'],  // Require admin role
        'public' => ['web', 'throttle:60,1'],      // Rate limit public forms
    ],

    'builder' => [
        'middleware' => 'admin',  // Use admin middleware group
        'show' => '{builder}/{form}',
    ],

    'submissions' => [
        'middleware' => 'admin',
        // Override single route with custom middleware
        'export_csv' => [
            'uri' => '{submissions}/{form}/{export}/{csv}',
            'middleware' => ['web', 'auth', 'can:export-submissions'],
        ],
    ],
],

// config/slick-forms.php
'load_routes' => false,

// routes/web.php
use DigitalisStudios\SlickForms\Http\Controllers\FormBuilderController;
use DigitalisStudios\SlickForms\Http\Controllers\FormRendererController;

Route::middleware(['auth'])->prefix('admin')->group(function () {
    Route::get('/forms', [FormBuilderController::class, 'index']);
    Route::get('/forms/builder/{form}', [FormBuilderController::class, 'show']);
});

// Public form route (no auth 

// Numeric ID routes (REMOVED)
/slick-forms/form/123
/slick-forms/builder/123

// UUID routes (REMOVED)
/slick-forms/form/550e8400-e29b-41d4-a716-446655440000

// Hashid routes only
/slick-forms/form/x9kL2p
/slick-forms/builder/x9kL2p

use DigitalisStudios\SlickForms\Models\CustomForm;
use DigitalisStudios\SlickForms\Services\UrlObfuscationService;

$form = CustomForm::find(1);

// Method 1: Pass model to route() (automatic hashid conversion)
$url = route('slick-forms.form.show.hash', ['hash' => $form]);

// Method 2: Use UrlObfuscationService
$urlService = app(UrlObfuscationService::class);
$hashid = $urlService->encodeId($form->id);
$url = route('slick-forms.form.show.hash', ['hash' => $hashid]);

// Method 3: Use convenience method
$url = $urlService->generateFormUrl($form);

// Access analytics dashboard
Route: /slick-forms/analytics/{form}

// Enable in form settings
$form->settings = [
    'multi_page_enabled' => true,
    'progress_style' => 'steps', // or 'bar', 'breadcrumb'
];

$form->fields()->create([
    'field_type' => 'calculation',
    'name' => 'total',
    'options' => [
        'formula' => '{price} * {quantity}',
        'prefix' => '$',
        'decimal_places' => 2,
    ],
]);

$form->fields()->create([
    'field_type' => 'repeater',
    'name' => 'work_experience',
    'options' => [
        'min_instances' => 1,
        'max_instances' => 10,
        'layout_style' => 'card', // or 'accordion', 'plain'
    ],
]);

// Available masks: phone, credit_card, ssn, date, time, currency, etc.
$field->options['input_mask'] = 'phone_us'; // (555) 123-4567
$field->options['input_mask'] = 'credit_card'; // 1234 5678 9012 3456
$field->options['input_mask'] = 'ssn'; // 123-45-6789
bash
php artisan slick-forms:install
bash
# Publish config file
php artisan vendor:publish --tag=slick-forms-config

# Publish views for customization
php artisan vendor:publish --tag=slick-forms-views
bash
# Seed with demo forms, templates, submissions, and analytics
php artisan db:seed --class=DigitalisStudios\\SlickForms\\Database\\Seeders\\DemoFormsWithAnalyticsSeeder
bash
php artisan db:seed --class=DigitalisStudios\\SlickForms\\Database\\Seeders\\FormTemplatesSeeder
bash
php artisan vendor:publish --tag=slick-forms-config