web-dev-qa-db-fra.com

Laravel 5 Modèles Dossier

J'ai un répertoire appelé models à l'intérieur de app/ où je place toutes mes classes de modèle. Maintenant, je veux changer le répertoire où la commande suivante affiche les classes générées

php artisan make:model SomeModel
31
Alan

Vous ne pouvez pas et, si vous vous conformez à la version de Laravel de l'univers, vous ne devriez pas. Laravel 5 fournit, et suppose, une convention de nommage PSR-4 pour tous ses fichiers de classe. Cela signifie que les modèles (et toutes les classes) doivent être placés en fonction de leur nom complet de la classe .

Quand tu dis 

php artisan make:model SomeModel

En fait, vous créez un modèle avec le nom complet App\SomeModel. Ainsi, artisan crée le fichier suivant. 

app/SomeModel.php

Si vous avez dit 

php artisan make:model 'Test\SomeModel'

vous créez un modèle avec le nom complet App\Test\SomeModel et Laravel crée le fichier suivant

app/Test/SomeModel.php

Ainsi, le nom de classe complet de votre modèle (espace de noms inclus) détermine l'emplacement du fichier de définition de classe.

49
Alan Storm

J'ai trouvé que ça devrait être:

php artisan make:model ModelFolder\\SomeModel
11
Travis Yang

Si vous souhaitez créer des modèles manuellement sur un dossier spécifique. Exemple si vous voulez créer le modèle infointo dans le dossier Models. Créez un fichier nommé info.php dans le dossier Modèles que vous avez créés auparavant. Voici que vous devriez écrire un code comme celui-ci dans info.php

<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Info extends Model
{
    // your code
    protected $table = 'tb_users';
}

Bien sûr, vous pouvez aussi utiliser la commande Artisan php artisan make:model "Models\Info"

Si vous souhaitez appeler ce modèle Info, vous créez une vue.

<?php
$users = App\Models\Info::all();

foreach ($users as $user) {
    echo $user->name;
}

Il affichera tous les noms des utilisateurs

Vous pouvez également consulter le fichier www/votre répertoire/database/php créé lors de la création du modèle.

0
Phil Unamka