Download the PHP package devalade/crudify without Composer
On this page you can find all versions of the php package devalade/crudify. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download devalade/crudify
More information about devalade/crudify
Files in devalade/crudify
Package crudify
Short Description Generate full CRUD with Livewire v4 components in Laravel
License MIT
Informations about the package crudify
Crudify
Generate full CRUD scaffolding for Laravel with a single command. Built for Livewire v4 and Laravel 11/12/13.
Crudify creates models, migrations, policies, Volt or Livewire CRUD pages, factories, and seeders — with support for relationships, soft deletes, file uploads, and searchable fields.
Installation
Quick Start
CLI
Volt single-file components are generated by default.
This generates SFCs directly in resources/views/pages/posts/:
index.blade.php— list with search, sort, paginationcreate.blade.php— inline validation with#[Validate]edit.blade.php— edit form with file upload supportshow.blade.php— detail view
Routes are auto-discovered and registered by Crudify's service provider.
Classic Livewire
Generate classic Livewire page classes, Blade views, controllers, form requests, and routes:
YAML
post.yaml
Then run:
Visit /{resource} (e.g. /posts).
Field Syntax
CLI Format
Examples:
| Field Definition | Result |
|---|---|
title:string |
string column |
body:text |
text column |
email:string:unique |
string with unique index |
published_at:datetime:nullable |
nullable datetime |
status:string:default:draft |
string with default value |
user_id:foreign:users |
foreignId constrained to users table |
views:integer:index |
integer with index |
photo:image |
string column + file upload input |
documents:file:multiple |
json column + multiple file upload input |
Available Types
string, text, integer, bigint, float, double, decimal, boolean, date, datetime, timestamp, time, json, uuid, email, foreign, image, file
Modifiers
nullable— allows NULL valuesunique— adds unique constraintindex— adds database indexdefault:value— sets default valueforeign:table— creates foreign key constraintmultiple— enables multiple file uploads (forimageandfiletypes)
File Uploads
Crudify supports single and multiple file/image uploads out of the box — for both Volt SFCs and classic Livewire pages.
Single Upload
Generates:
stringcolumn for the file pathWithFileUploadstrait in Volt components- File input with
accept="image/*" - Automatic file storage to
storage/app/public/ - Old file deletion on edit
Multiple Uploads
Generates:
jsoncolumn for storing multiple paths- Array-cast in the model
- Multiple file input (
<input type="file" multiple>) removePhotosFile()method for selective removal- Gallery preview grid on edit/show views
Relationships
Define Eloquent relationships in your model with a simple syntax.
CLI
YAML
Supported Types
belongsTo— generates dropdown in forms, eager-loaded in indexhasMany— generates model method onlyhasOne— generates model method onlybelongsToMany— generates checkbox group in forms, syncs on save
Relationships are automatically:
- Added to the model with proper return types
- Eager-loaded in generated index components
- Validated in generated forms for classic Livewire mode
- Displayed in index tables and show views
- For
belongsToMany, generates pivot migration and missing related model when needed
Relationship Display API
Use optional relationship metadata when default name field is not right.
CLI
CLI format:
YAML
Behavior:
displaychooses field used in selects, checkbox labels, index badges, and show pageslabeloverrides section/table/form label shown to end usersbelongsToManyappears in create/edit as checkboxes and in index/show as badges by default
belongsToMany Example
For a tags:belongsToMany:Tag relationship, the generator produces:
YAML:
Run:
Generated artifacts in default Volt mode:
app/Models/Post.phpapp/Models/Tag.phpif missingdatabase/migrations/*_create_posts_table.phpdatabase/migrations/*_create_post_tag_table.php- Volt create/edit checkbox UI
- index badges for related tags
selectedTagsIdsstate and sync logic
Generated Files
For a model named Post, Crudify generates by default:
| File | Description |
|---|---|
app/Models/Post.php |
Eloquent model with $fillable, $casts, traits, and relationships |
database/factories/PostFactory.php |
Factory with Faker methods mapped to field types |
database/seeders/PostSeeder.php |
Seeder calling Post::factory()->count(10)->create() |
database/migrations/xxxx_create_posts_table.php |
Migration with all columns and indexes |
app/Policies/PostPolicy.php |
Authorization policy |
resources/views/pages/posts/index.blade.php |
Volt index page with search, sort, pagination |
resources/views/pages/posts/create.blade.php |
Volt create page with inline validation |
resources/views/pages/posts/edit.blade.php |
Volt edit page |
resources/views/pages/posts/show.blade.php |
Volt show page |
Use --livewire to generate classic extras instead:
app/Http/Controllers/PostsController.phpapp/Http/Requests/StorePostRequest.phpapp/Http/Requests/UpdatePostRequest.phpapp/Livewire/Pages/Posts/*.phpresources/views/livewire/pages/posts/*.blade.phproutes/web.php
Livewire 4 Compatible
All generated components use Livewire 4 syntax:
#[Validate]attributes on properties (fixesMissingRulesException)#[Layout]and#[Title]attributesWithFileUploadstrait for file handlingwire:confirmfor delete confirmations
UI Framework
Generated views use Flux UI components with Tailwind CSS. Generated Blade files include flux:* components plus Tailwind utility classes:
Install Flux in generated app:
Bootstrap setup files with:
This command:
- creates
resources/css/app.csswith Tailwind + Flux imports - creates
resources/js/app.js - creates or patches common app layouts with
@fluxAppearance,@vite(...),@livewireScripts, and@fluxScripts - patches Vite config to add
@tailwindcss/vitewhen a Vite config file exists
Install and bootstrap everything automatically:
crudify:install:
- installs
livewire/flux - installs
livewire/voltwhen--voltused - installs
tailwindcssand@tailwindcss/vitevia npm whenpackage.jsonexists - runs
crudify:setup
Command Options
Examples
Generate with file uploads:
Generate with relationships:
Generate classic Livewire instead of Volt:
Generate only model and migration:
Skip controllers (Livewire-only):
Preview changes:
Customizing Stubs
Publish stubs to your application:
Then edit files in stubs/crudify/. The package will use your custom stubs on the next generation.
Requirements
- PHP ^8.2
- Laravel ^11.0, ^12.0 or ^13.0
- Livewire ^4.0
Testing
License
MIT
All versions of crudify with dependencies
laravel/framework Version ^11.0|^12.0|^13.0
livewire/livewire Version ^4.0
symfony/yaml Version ^6.0|^7.0|^8.0