wake-up-neo.net

Laravel 5 Modelle Ordner

Ich habe ein Verzeichnis namens models in app/, in dem ich alle meine Modellklassen platziere. Jetzt möchte ich das Verzeichnis ändern, in dem der folgende Befehl die generierten Klassen ausgibt

php artisan make:model SomeModel
31
Alan

Sie können nicht und wenn Sie sich für Laraves Version des Universums interessieren, sollten Sie dies nicht tun. Laravel 5 stellt für alle Klassendateien eine PSR-4-Namenskonvention bereit und übernimmt diese. Dies bedeutet, dass Modelle (und alle Klassen) basierend auf ihrem vollständigen Klassennamen platziert werden sollten.

Wenn du sagst 

php artisan make:model SomeModel

Sie erstellen tatsächlich ein Modell mit dem vollständigen Namen App\SomeModel, sodass artisan die folgende Datei erstellt. 

app/SomeModel.php

Wenn du gesagt hättest 

php artisan make:model 'Test\SomeModel'

sie würden ein Modell mit dem vollständigen Namen App\Test\SomeModel erstellen, und Laravel würde die folgende Datei erstellen

app/Test/SomeModel.php

Der vollständige Klassenname Ihres Modells (einschließlich Namespace) bestimmt, wo sich die Klassendefinitionsdatei befindet.

49
Alan Storm

Ich fand es sollte sein:

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

Sehen Sie sich das anhand dieses Tutorials auf Medium an https://medium.com/@codingcave/organizing-your-laravel-models-6b327db182f9 . Es ist eine bessere Lösung, das ModelMakeCommand so zu erweitern, dass Sie anstelle von php artisan make:model 'Test\SomeModel'php artisan make:model SomeModel Ausführen und dennoch den Namespace 'Test\SomeModel' Mit SomeModel.php im Ordner 'Test'

0

Wenn Sie zu faul sind und nicht jedes Mal das Wort Models eingeben möchten, können Sie es mit my https://github.com/bangnokia/laravel-models-folder versuchen

0
bangnokia

Wenn Sie Modelle manuell für einen bestimmten Ordner erstellen möchten. Beispiel, wenn Sie das Modell infoin den Ordner Models erstellen möchten. Erstellen Sie eine Datei mit dem Namen info.php in dem Ordner Models, den Sie zuvor erstellt haben. Hier sollten Sie Code wie folgt in info.php schreiben

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

Natürlich können Sie auch den Artisan-Befehl verwenden php artisan make:model "Models\Info"

Wenn Sie dieses Modell Info aufrufen möchten, erstellen Sie eine Ansicht

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

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

Es werden alle Namen der Benutzer angezeigt

Sie können auch die Datei www/yourfolder/database/php betrachten, die erstellt wurde, als das Modell erstellt wurde.

0
Phil Unamka