web-dev-qa-db-ja.com

Laravel 5 Modelsフォルダ

すべてのモデルクラスを配置するapp/内にmodelsというディレクトリがあります。ここで、次のコマンドが生成されたクラスを出力するディレクトリを変更します

php artisan make:model SomeModel
31
Alan

あなたはできませんし、もしあなたが宇宙のLaravelのバージョンに耳を傾けているなら、あなたはすべきではありません。 Laravel 5は、そのすべてのクラスファイルのPSR-4命名規則を提供し、想定しています。つまり、モデル(およびすべてのクラス)は、完全なクラス名

あなたが言う時

php artisan make:model SomeModel

実際にはApp\SomeModelというフルネームでモデルを作成しているので、artisanは次のファイルを作成します。

app/SomeModel.php

あなたが言ったなら

php artisan make:model 'Test\SomeModel'

フルネームApp\Test\SomeModelでモデルを作成し、Laravelは次のファイルを作成します

app/Test/SomeModel.php

そのため、クラス定義ファイルの場所を決定するモデルの完全なクラス名(名前空間を含む)。

53
Alan Storm

私はそれがべきであることがわかった:

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

特定のフォルダーにモデルを手動で作成する場合。モデルinfointoフォルダーModelsを作成する場合の例。以前に作成したフォルダーModels内にinfo.phpという名前のファイルを作成します。 info.phpにこのようなコードを書く必要があります

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

もちろん、Artisanコマンドphp artisan make:model "Models\Info"を使用することもできます

そのモデルInfoを呼び出したい場合は、ビューを作成します

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

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

すべてのユーザー名が表示されます

このチュートリアルを中規模で使用して、これを調べてください https://medium.com/@codingcave/organizing-your-laravel-models-6b327db182f9ModelMakeCommandを拡張して、php artisan make:model 'Test\SomeModel'の代わりにphp artisan make:model SomeModelを実行し、'Test\SomeModel'フォルダーでSomeModel.phpを使用して'Test'名前空間を取得できるようにするより良いソリューション

0

怠けすぎで、毎回Modelsを入力したくない場合は、これを試してみてください https://github.com/bangnokia/laravel-models-folder

0
bangnokia

また、モデルの作成時に作成されたwww/yourfolder/database/phpファイルを確認することもできます。

0
Phil Unamka