- Smarter Resource Generation: Automatically populate all columns in a Resource from your database table.
- Table Name Guessing: Guesses the table name based on the resource name, or you can specify it manually.
- Model Integration: Use
--modelto resolve the table name directly from an Eloquent model. - Advanced Filtering: Use
--onlyor--exceptto filter columns on the fly. - Relationship Discovery: Automatically detects
_idcolumns and adds commented-outwhenLoadedplaceholders. - Bulk Generation: Generate resources for all tables in your database with a single command.
- Customisable Stubs: Publish and customise the resource stubs to match your project's style.
- Fine-grained Control: Exclude specific fields globally via the configuration file or rely on automatic sensitive data hiding.
You can install the package via Composer:
composer require protoqol/quasiYou can publish the configuration file or the stubs with:
# Publish configuration
php artisan vendor:publish --tag=quasi-config
# Publish stubs for customization
php artisan vendor:publish --tag=quasi-stubsYou can create a resource by specifying the name. The table name will be guessed automatically.
# Table name is guessed based on the resource name (e.g., 'users' for UserResource).
php artisan make:qresource UserResource
# Explicitly provide the table name.
php artisan make:qresource UserResource --table=users
# Resolve table name from a model.
php artisan make:qresource UserResource --model=UserFilter which columns should be included in the generated resource.
# Only include specific columns.
php artisan make:qresource UserResource --only=id,name,email
# Exclude specific columns.
php artisan make:qresource UserResource --except=deleted_at,internal_notesNote: Common sensitive fields like password, token, secret, and remember_token are automatically excluded.
Generate resources for your entire database at once.
# Generate resources for all tables.
php artisan make:qresource --all
# Generate resources AND collections for all tables.
php artisan make:qresource --all --collectionPlease open an issue on this repository. We're happy to hear back from you!
Developed by Protoqol.