List of 21 Artisan Make Commands with Parameters [Updated 2019]
Founder of QuickAdminPanel
Laravel has awesome set of artisan commands, probably the most often used are make:xxx – like make:model or make:migration etc. But do you know all 21 of them? And, moreover, do you know their parameters which may help to make the code even quicker?
First, there is a command php artisan list which gives us all the commands, like this:
make:channel Create a new channel class make:command Create a new Artisan command make:controller Create a new controller class make:event Create a new event class make:exception Create a new custom exception class make:factory Create a new model factory make:job Create a new job class make:listener Create a new event listener class make:mail Create a new email class make:middleware Create a new middleware class make:migration Create a new migration file make:model Create a new Eloquent model class make:notification Create a new notification class make:observer Create a new observer class make:policy Create a new policy class make:provider Create a new service provider class make:request Create a new form request class make:resource Create a new resource make:rule Create a new validation rule make:seeder Create a new seeder class make:test Create a new test class
Notice: if you’re surprised not to see make:auth command, it was removed in Laravel 6 and separated into its own UI package.
This list above doesn’t give us any information about the parameters or options for these commands. So I want to make an overview of each of them here, starting with the most often used ones.
For that, we will dive into actual code of the framework, inside /vendor/laravel/framework/src/Illuminate folder, and will check what options and undocumented features we have for each command.
1. make:controller
This command creates a new controller file in app/Http/Controllers folder.
Example usage:
php artisan make:controller UserController
Parameters:
--resource
The controller will contain a method for each of the available resource operations – index(), create(), store(), show(), edit(), update(), destroy().
--api
Similar to –resource above, but generate only 5 methods: index(), store(), show(), update(), destroy(). Because create/edit forms are not needed for API.
--invokable
Generates controller with one __invoke() method. Read more about invokable controllers here.
--model=Photo
If you are using route model binding and would like the resource controller’s methods to type-hint a model instance.
--parent=Photo
Officially undocumented parameter, in the code it says “Generate a nested resource controller class” but for me it failed to generate a Controller properly. So probably work in progress.
2. make:model
Create a new Eloquent model class.
Example usage:
php artisan make:model Photo
Parameters:
--migration
or
-m
Create a new migration file for the model.
--controller
or
-c
Create a new controller for the model.
--resource
or
-r
Indicates if the generated controller should be a resource controller.
Yes, you’ve got it right, you can do it like this:
php artisan make:model Project --migration --controller --resource
Or even shorter:
php artisan make:model Project -mcr
But that’s not all to make:model.
--factory
or
-f
Create a new factory for the model.
--all
or
-a
Generate all of the above: a migration, factory, and resource controller for the model.
And even that’s not all.
--force
Create the class even if the model already exists.
--pivot
Indicates if the generated model should be a custom intermediate table model.
3. make:migration
Create a new migration file.
Example usage:
php artisan make:migration create_projects_table
Parameters:
--create=Table
The table to be created.
--table=Table
The table to migrate.
--path=Path
The location where the migration file should be created.
--realpath
Indicate any provided migration file paths are pre-resolved absolute path.
--fullpath
Output the full path of the migration.
We can also help to generate Laravel code!
Try our QuickAdminPanel.com
4. make:seeder
Create a new database seeder class.
Example usage:
php artisan make:seeder BooksTableSeeder
Parameters: none.
5. make:request
Create a new form request class in app/Http/Requests folder.
Example usage:
php artisan make:request StoreBlogPost
Parameters: none.
6. make:middleware
Create a new middleware class.
Example usage:
php artisan make:middleware CheckAge
Parameters: none.
7. make:policy
Create a new policy class.
Example usage:
php artisan make:policy PostPolicy
Parameters:
--model=Photo
The model that the policy applies to.
8. make:command
Create a new Artisan command.
Example usage:
php artisan make:command SendEmails
Parameters:
--command=Command
The terminal command that should be assigned.
9. make:event
Create a new event class.
Example usage:
php artisan make:event OrderShipped
Parameters: none.
10. make:job
Create a new job class.
Example usage:
php artisan make:job SendReminderEmail
Parameters:
--sync
Indicates that job should be synchronous.
11. make:listener
Create a new event listener class.
Example usage:
php artisan make:listener SendShipmentNotification
Parameters:
--event=Event
The event class being listened for.
--queued
Indicates the event listener should be queued.
12. make:mail
Create a new email class.
Example usage:
php artisan make:mail OrderShipped
Parameters:
--markdown
Create a new Markdown template for the mailable.
--force
Create the class even if the mailable already exists.
13. make:notification
Create a new notification class.
Example usage:
php artisan make:notification InvoicePaid
Parameters:
--markdown
Create a new Markdown template for the notification.
--force
Create the class even if the notification already exists.
14. make:provider
Create a new service provider class.
Example usage:
php artisan make:provider DuskServiceProvider
Parameters: none.
15. make:test
Create a new test class.
Example usage:
php artisan make:test UserTest
Parameters:
--unit
Create a unit (or, otherwise, feature) test.
16. make:channel
Create a new channel class for broadcasting.
Example usage:
php artisan make:channel OrderChannel
Parameters: none.
17. make:exception
Create a new custom exception class.
Example usage:
php artisan make:exception UserNotFoundException
Parameters:
--render
Create the exception with an empty render method.
--report
Create the exception with an empty report method.
18. make:factory
Create a new model factory.
Example usage:
php artisan make:factory PostFactory --model=Post
Parameters:
--model=Post
The name of the model.
19. make:observer
Create a new observer class.
Example usage:
php artisan make:observer PostObserver --model=Post
Parameters:
--model=Post
The model that the observer applies to.
20. make:rule
Create a new validation rule.
Example usage:
php artisan make:rule Uppercase
Parameters: none.
21. make:resource
Create a new API resource.
Example usage:
php artisan make:resource PostResource
Parameters:
--collection=Post
Create a ResourceCollection instead of individual Resource class.
So, that’s it – 21 commands covered. Is there anything missing? Or would you like to see some new parameters for your favorite commands? Share in the comments!