web-dev-qa-db-fra.com

Comment ordonner à artisan de sauvegarder le modèle dans un répertoire spécifique?

J'utilise Laravel 5. J'ai créé un répertoire /Models dans le répertoire /App, mais lors de la génération des modèles à l'aide d'Artisan, il les stocke dans le répertoire App.

J'ai parcouru la documentation pour essayer de trouver comment spécifier un nom de chemin différent, mais en vain:

php artisan make:model TestModel

Comment demander à artisan de sauvegarder le modèle dans un répertoire spécifique?

31
James Jeffery

Si vous souhaitez spécifier le chemin lors de la génération d'un modèle, vous pouvez utiliser le package Laravel Generators Package . Vous pouvez ensuite spécifier l'emplacement à l'aide de l'option --path comme suit:

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

Créez un répertoire Models ou le nom de votre choix, placez-le dans le répertoire app. La structure du répertoire devrait ressembler à

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

Ensuite, il vous suffit de taper une commande artisan pour créer des modèles dans le répertoire Modèles.

php artisan make:model Models/ModelName 

Après avoir créé des modèles, votre espace de noms à l'intérieur des classes de modèle sera

namespace app-name\Models\ModelName

Vous pouvez accéder à ce modèle dans votre contrôleur

use app-name\Models\ModelName
95
Mansoor Akhtar

Pour ceux qui utilisent Laravel> = 5.2

Il est possible de générer un modèle dans un sous-répertoire à l'aide de générateurs Artisan intégrés en "évitant" les barres obliques inverses dans le FQN, comme suit:

Laravel 5.2

php artisan model:make App\\Models\\Foo

Laravel 5.3

php artisan make:model App\\Models\\Foo

(La différence entre 5.2 et 5.3 a été soulignée par @Khaled Rahman , merci!)

Les commandes ci-dessus créeraient un fichier Foo.php dans le répertoire app/Models et mettront à jour l'espace de noms en conséquence.

J'espère que cela pourra aider.

20
mmieluch

Dans Laravel 5.4 ou plus tard

Vous pouvez créer comme ci-dessous

 > php artisan make:model "Models\userModel"

ici Modèles est le nom du répertoire et userModel est le nom du modèle

Utilisez "(guillemets doubles) ou '(guillemets simples) pour créer un modèle

16
Jazzzzzz

Cela fonctionne pour la version actuelle de Laravel, 5.6.28, sous Windows 7.

php artisan make:model App\Models\NewModel

Remarque: N'utilisez pas les doubles échappements ('\\')

Ceci génère le fichier App\Models\NewModel.php comme suit

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class NewModel extends Model
{
    //
}
0
realtebo

Chemin du contrôleur (ApI/Admin)

Chemin du modèle (modèle/administrateur)

fabrication artisanale php: contrôleur API/Admin/PlanController --model = Model/Admin/Plan --resource

0
kush