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

Questions:

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

Answer:

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

laravel-project
     /app
        /Console
        /Events
        /Exceptions
        /Http
        /Jobs
        /Listeners
        /Provider
       /Models

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

Answer:

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.

Answer:

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

Answer:

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

Answer:

Controller path (ApI/Admin)

Model path(Model/Admin)

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

Answer:

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

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class NewModel extends Model
{
    //
}