PHPackages                             mr.incognito/crudify - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. mr.incognito/crudify

ActiveLaravel-package[Database &amp; ORM](/categories/database)

mr.incognito/crudify
====================

This package is for handling the crud for simple crud like for setup etc.

v2.1.0(1mo ago)1288MITPHPPHP ^8.1|^8.2|^8.3|^8.4

Since Jul 10Pushed 1mo agoCompare

[ Source](https://github.com/SandeepX/laravel-crud-package)[ Packagist](https://packagist.org/packages/mr.incognito/crudify)[ RSS](/packages/mrincognito-crudify/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (24)Versions (11)Used By (0)

Laravel CRUD Generator
======================

[](#laravel-crud-generator)

A Laravel package to quickly scaffold **API or Web-based CRUD operations** using a simple Artisan command. It generates **Models**, **Migrations**, **Form Requests**, **API Resources**, **Controllers**, and even **Blade views** — with full support for validation, foreign keys, nullable fields, and default values.

Installation
------------

[](#installation)

To install the package, run:

```
composer require mr.incognito/crudify
```

---

✨ Features
----------

[](#-features)

- ✅ Generates **Model**, **Migration**, **Controller**, **Request**, and **Resource**
- ✅ Supports Web (with Blade views) or API type generation
- ✅ Handles **nullable** fields (using `~` as a suffix)
- ✅ Supports **foreign key constraints**
- ✅ Adds **default values** to migration fields
- ✅ Type-aware validation rules (e.g., `string`, `integer`, `boolean`)
- ✅ Artisan-based generation: fast and developer-friendly
- ✅ **--type** flag to specific crud type api or web based (with default is api)
- ✅ **--exclude** flag to skip generating specific files
- ✅ 🆕 **delete:crud** command to remove all generated files at once
- ✅ Built-in Pest tests
- ✅ Code refactoring via Rector

---

🚀 Usage
-------

[](#-usage)

```
php artisan make:crud ModelName --fields="field:type|rule1|rule2;another:foreign~|constrained:table" --type=api|web --exclude=model,..
```

### Example 1: Basic CRUD without foreign key

[](#example-1-basic-crud-without-foreign-key)

```
php artisan make:crud Department --fields="name:string|max:255;created_by:foreign~|constrained:users"
```

### Example 2: Required foreign key with constraint and cascade

[](#example-2-required-foreign-key-with-constraint-and-cascade)

```
php artisan make:crud Department --fields="name:string;created_by:foreign|constrained:users|onDelete:cascade"
```

### Example 3: Nullable foreign key column

[](#example-3-nullable-foreign-key-column)

```
php artisan make:crud Department --fields="name:string;created_by:foreign~|constrained:hospitals"
```

### Example 4: Field with default value

[](#example-4-field-with-default-value)

```
php artisan make:crud Department --fields="name:string;status:boolean~|default:true"
```

### These all will Generate

[](#these-all-will-generate)

- `app/Models/Department.php`
- `app/Http/Controllers/DepartmentController.php`
- `app/Http/Requests/DepartmentRequest.php`
- `app/Http/Resources/DepartmentResource.php`
- `database/migrations/xxxx_xx_xx_create_departments_table.php`
- Adds route in `routes/api.php`

### Example 5: Web CRUD with Blade Views

[](#example-5-web-crud-with-blade-views)

```
php artisan make:crud Article --fields="title:string;content:text" --type=web
```

#### Generates:

[](#generates)

- Model, Migration
- Blade Views: `resources/views/articles/*.blade.php`
- `Web\ArticleController`
- Route in `web.php`

### Example 6: Web CRUD excluding migration and model

[](#example-6-web-crud-excluding-migration-and-model)

```
php artisan make:crud Article --fields="title:string;content:text" --type=web --exclude=migration,model
```

#### Generates only:

[](#generates-only)

- Blade Views: `resources/views/articles/*.blade.php`
- `Web\ArticleController`
- Route in `web.php`

### Example 7: Exclude Model and Migration (API)

[](#example-7-exclude-model-and-migration-api)

```
php artisan make:crud Department --fields="name:string" --type=api --exclude=model,migration
```

Skips model and migration, still creates controller, request, and resource.

---

🗑️ Deleting Generated CRUD
--------------------------

[](#️-deleting-generated-crud)

Use `delete:crud` to remove **all files generated by `make:crud`** for a given resource in one command. It is the exact reverse of `make:crud`.

```
php artisan delete:crud ModelName --type=api|web --exclude=model,.. --force
```

### Basic delete (defaults to API type)

[](#basic-delete-defaults-to-api-type)

```
php artisan delete:crud Hospital
```

### Specify type

[](#specify-type)

```
# Delete API CRUD files
php artisan delete:crud Hospital --type=api

# Delete Web CRUD files
php artisan delete:crud Hospital --type=web
```

### Skip confirmation prompt

[](#skip-confirmation-prompt)

```
php artisan delete:crud Hospital --force
```

### Exclude specific components from deletion

[](#exclude-specific-components-from-deletion)

Keep certain files while deleting the rest — useful when you want to preserve your model or migration history.

```
# Keep the model
php artisan delete:crud Hospital --exclude=model

# Keep the migration (recommended to preserve DB history)
php artisan delete:crud Hospital --exclude=migration

# Keep both model and migration
php artisan delete:crud Hospital --exclude=model,migration

# Keep the route entry
php artisan delete:crud Hospital --exclude=route

# Keep controller and resource
php artisan delete:crud Hospital --exclude=controller,resource
```

### Combine options

[](#combine-options)

```
# Delete web CRUD, skip prompt, keep migration
php artisan delete:crud Hospital --type=web --exclude=migration --force

# Delete api CRUD, keep model and migration, no prompt
php artisan delete:crud Hospital --type=api --exclude=model,migration --force
```

### What gets deleted

[](#what-gets-deleted)

ComponentAPI pathWeb path`model``app/Models/Hospital.php``app/Models/Hospital.php``request``app/Http/Requests/HospitalRequest.php``app/Http/Requests/HospitalRequest.php``migration``database/migrations/*_create_hospitals_table.php``database/migrations/*_create_hospitals_table.php``controller``app/Http/Controllers/Api/HospitalController.php``app/Http/Controllers/Web/HospitalController.php``resource``app/Http/Resources/HospitalResource.php`—`views`—`resources/views/hospitals/` *(entire directory)*`route`Strips entry from `routes/api.php`Strips entry from `routes/web.php`### Interactive confirmation

[](#interactive-confirmation)

When run **without `--force`**, the command shows a preview and asks for confirmation before deleting anything:

```
The following files will be deleted for  (api):
  ✗ [model]      app/Models/Hospital.php
  ✗ [request]    app/Http/Requests/HospitalRequest.php
  ✗ [migration]  database/migrations/2024_01_01_000000_create_hospitals_table.php
  ✗ [controller] app/Http/Controllers/Api/HospitalController.php
  ✗ [resource]   app/Http/Resources/HospitalResource.php

 Are you sure you want to delete these files? (yes/no) [no]:
 > yes

Deleted:
  ✓ [model]      app/Models/Hospital.php
  ✓ [request]    app/Http/Requests/HospitalRequest.php
  ✓ [migration]  database/migrations/2024_01_01_000000_create_hospitals_table.php
  ✓ [controller] app/Http/Controllers/Api/HospitalController.php
  ✓ [resource]   app/Http/Resources/HospitalResource.php
  ✓ [route]      removed route entry from routes/api.php

API CRUD for Hospital deleted successfully.

```

If a file was not found it is reported as **skipped** rather than throwing an error:

```
Not found (skipped):
  ? [migration]  database/migrations/*_create_hospitals_table.php

```

---

Field Syntax
------------

[](#field-syntax)

Each field uses the format:

```
column_name:data_type[~]|rules|default:xyz;next_column:foreignId[~]|constrained:table

```

Supported Field Types
---------------------

[](#supported-field-types)

You can use any of the following Laravel migration column types:

`string`, `text`, `boolean`, `integer`, `decimal`, `date`, `uuid`, `json`, `timestamp`, etc.

- Foreign key via `foreign`, e.g., `user_id:foreign~|constrained:users`
- Nullable fields: suffix type with `~`, e.g., `email:string~`
- Default values: `default:value`, e.g., `status:boolean|default:true`

Column Modifiers
----------------

[](#column-modifiers)

ModifierDescription`~`Makes the field nullable`default:value`Sets a default value in the migration`constrained`Adds a foreign key constraint`onDelete:CASCADE`Adds delete behavior for foreign keys---

🆕 New in v2
-----------

[](#-new-in-v2)

🎯 `--type=api` — generates API controller and resource only

🎯 `--type=web` — generates web controller and Blade views

✂️ `--exclude=model,migration,...` — skip generating specific components

🗑️ `delete:crud` — reverse any `make:crud` with a single command

---

⚠️ Default Behavior
-------------------

[](#️-default-behavior)

If `--type` is not specified, the command defaults to `type=api`.

```
php artisan make:crud Book --fields="title:string;author:string"
```

This is equivalent to:

```
php artisan make:crud Book --fields="title:string;author:string" --type=api
```

By default, it generates API-related files:

- API Controller
- API Resource
- Form Request
- Model
- Migration
- Adds route to `api.php`

---

Testing
-------

[](#testing)

This package uses Pest for testing:

```
composer test
```

Refactoring
-----------

[](#refactoring)

This package uses [Rector](https://github.com/rectorphp/rector) for automated code refactoring and PHP/Laravel upgrades:

```
composer rector
```

---

🛠 Dev Requirements
------------------

[](#-dev-requirements)

- PHP ^8.1
- Laravel ^10 or ^11 or ^12 or ^13
- PestPHP for testing
- Laravel Pint for code style

Contributing
------------

[](#contributing)

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

🧑 Author
--------

[](#-author)

Sandeep Pant

📧

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT License](https://choosealicense.com/licenses/mit/).

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance89

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~33 days

Recently: every ~74 days

Total

10

Last Release

57d ago

Major Versions

v1.0.2 → v2.0.02025-07-14

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/47293893?v=4)[Sandeep pant](/maintainers/SandeepX)[@SandeepX](https://github.com/SandeepX)

---

Top Contributors

[![SandeepX](https://avatars.githubusercontent.com/u/47293893?v=4)](https://github.com/SandeepX "SandeepX (30 commits)")

---

Tags

phpapiweblaravelmigrationpackagecode generatorscaffoldmodelartisanlaravel-packageresourceboilerplatecontrollerbackendcrud generatorrapid-developmentlaravel-apirequest validationlaravel-toolkitdeveloper toolapi-crudcrudifydeveloper-helperweb-crud

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/mrincognito-crudify/health.svg)

```
[![Health](https://phpackages.com/badges/mrincognito-crudify/health.svg)](https://phpackages.com/packages/mrincognito-crudify)
```

###  Alternatives

[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M131](/packages/roots-acorn)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M194](/packages/laravel-ai)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77022.3M150](/packages/laravel-mcp)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[yajra/laravel-oci8

Oracle DB driver for Laravel via OCI8

8793.2M25](/packages/yajra-laravel-oci8)[illuminate/queue

The Illuminate Queue package.

21332.6M1.6k](/packages/illuminate-queue)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
