276

I can create a model and resource controller (binded to model) with the following command

php artisan make:controller TodoController --resource --model=Todo

I want to also create a migration with the above command, is it possible?

1
  • I think in this case the flag --resource is not needed. --model is enough. Commented Oct 7, 2018 at 16:21

8 Answers 8

664

You can do it if you start from the model

php artisan make:model Todo -mcr

if you run php artisan make:model --help you can see all the available options

-m, --migration Create a new migration file for the model.
-c, --controller Create a new controller for the model.
-r, --resource Indicates if the generated controller should be a resource controller

Update

As mentioned in the comments by @arun in newer versions of laravel > 5.6 it is possible to run following command:

php artisan make:model Todo -a

-a, --all Generate a migration, factory, and resource controller for the model

Sign up to request clarification or add additional context in comments.

5 Comments

Now we can use php artisan make:model Todo -a to create model, migration, resource controller and factory
why, for example, the method show param is the model object when creating with make:model -mcr vs make:controller --resource the method show param is $id
@Cr1xus Because in the second command you need to specify which Resource model you want to use, in the first command the -r flag knows the correct model because we just made that model.
when I use this command, why it doesnt creates ModelResource.php in app/http/resources directory ?
@tyasird Resource means that your controllers will be preloaded with auto-injected model. This does not mean the api-resources
70

Updated

Laravel 6 or Later

Through the model

To Generate a migration, seeder, factory and resource controller for the model

php artisan make:model Todo -a

Or

php artisan make:model Todo -all

Other Options

-c, --controller Create a new controller for the model

-f, --factory Create a new factory for the model

--force Create the class even if the model already exists

-m, --migration Create a new migration file for the model

-s, --seed Create a new seeder file for the model

-p, --pivot Indicates if the generated model should be a custom intermediate table model

-r, --resource Indicates if the generated controller should be a resource controller

For More Help

php artisan make:model Todo -help

Hope Newbies will get help.

1 Comment

-all wont work, probably --all
34

You can make model + migration + controller, all in one line, using this command:

php artisan make:model --migration --controller test

Short version: php artisan make:model -mc test

Output :-

Model created successfully.

Created Migration:2018_03_10_002331_create_tests_table

Controller created successfully.


If you need to perform all CRUD operations in the controller then use this command:

php artisan make:model --migration --controller test --resource  

Short version: php artisan make:model -mc test --resource

3 Comments

please use php artisan make:model --migration --controller --resource Test .
bro i create first and then post this . actually i use your given command and add --resource at end and this work please check from you end . I am useing laravel 5.4 . may lower version of laravel not support . @Udhav
I installed fresh Laravel, Your suggestion code is working, thank you @Affan :)
10

php artisan make:model Author -cfmsr

-c, --controller Create a new controller for the model

-f, --factory Create a new factory for the model

-m, --migration Create a new migration file for the model

-s, --seed Create a new seeder file for the model

-r, --resource Indicates if the generated controller should be a resource controller

Comments

6

If you are using Laravel as an only API add --api option:

php artisan make:model Post -a --api

Comments

4

We can use php artisan make:model Todo -a to create model, migration, resource controller and factory

1 Comment

are you still working in velan?
3

You don't need to add --resource flag just type the following and laravel will create the whole desired resources

 php artisan make:controller TodoController --model=todo

Comments

1

How I was doing it until now:

php artisan make:model Customer
php artisan make:controller CustomersController --resource

Apparently, there’s a quicker way:

php artisan make:controller CustomersController --model=Customer

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.