How do I instruct artisan to save model to specifi

2019-02-01 18:12发布

问题:

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?

回答1:

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


回答2:

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


回答3:

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.



回答4:

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



回答5:

Controller path (ApI/Admin)

Model path(Model/Admin)

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



回答6:

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
{
    //
}