Home » Php » php – How do I instruct artisan to save model to specific directory?

php – How do I instruct artisan to save model to specific directory?

Posted by: admin April 23, 2020 Leave a comment


I’m using Laravel 5. I have created a /Models directory under the /App directory, but when generating the models using Artisan it’s storing them under the App directory.

I have searched the documentation to try and find how to specify a different path name, but to no avail:

php artisan make:model TestModel

How do I instruct artisan to save the model to specific directory?

How to&Answers:

If you want to specify the path when generating a model, you can use the Laravel Generators Package. You can then specify the location using the --path option like so:

php artisan generate:model TestModel --path=my/custom/location


Create a Models directory or whatever your want to named it, put it in inside app directory. The Directory structure should look like


Then You just need to type artisan command for creating models inside Models directory

php artisan make:model Models/ModelName 

After Creating Models your namespace inside model classes will be

namespace app-name\Models\ModelName

You can access this model in inside your controller

use app-name\Models\ModelName


For those using Laravel >= 5.2

It is possible to generate a model in a subdirectory using built-in Artisan generators by “escaping” the backslashes in the FQN, like so:

Laravel 5.2

php artisan model:make App\Models\Foo

Laravel 5.3

php artisan make:model App\Models\Foo

(the difference between 5.2 and 5.3 pointed out by @Khaled Rahman, thanks!)

Commands above would create Foo.php file in the app/Models directory and update the namespace accordingly.

Hope that helps.


In Laravel 5.4 or later

You can create as below

 > php artisan make:model "Models\userModel"

here Models is directory name and userModel is model name

Use ” (double quotes) or ‘ (single quotes) to create model


You can simply use this (for Laravel 5.3+):

php artisan make:model your_path/model_name

If you don’t specify a path it will use main ‘app’ folder as root. So you can navigate from there.

Models/Folder1/MyModel means app->Models->Folder1->MyModel.php


Controller path (ApI/Admin)

Model path(Model/Admin)

php artisan make:controller API/Admin/PlanController –model=Model/Admin/Plan –resource


This works for actual Laravel version, 5.6.28, on Windows 7

php artisan make:model App\Models\NewModel

Note: Do not use double escapes ('\\')

This generate the file App\Models\NewModel.php as follows


namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class NewModel extends Model