すべてのモデルクラスを配置するapp/
内にmodels
というディレクトリがあります。ここで、次のコマンドが生成されたクラスを出力するディレクトリを変更します
php artisan make:model SomeModel
あなたはできませんし、もしあなたが宇宙の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
そのため、クラス定義ファイルの場所を決定するモデルの完全なクラス名(名前空間を含む)。
私はそれがべきであることがわかった:
php artisan make:model ModelFolder\\SomeModel
特定のフォルダーにモデルを手動で作成する場合。モデルinfo
intoフォルダー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-6b327db182f9 。 ModelMakeCommand
を拡張して、php artisan make:model 'Test\SomeModel'
の代わりにphp artisan make:model SomeModel
を実行し、'Test\SomeModel'
フォルダーでSomeModel.php
を使用して'Test'
名前空間を取得できるようにするより良いソリューション
怠けすぎで、毎回Models
を入力したくない場合は、これを試してみてください https://github.com/bangnokia/laravel-models-folder
また、モデルの作成時に作成されたwww/yourfolder/database/phpファイルを確認することもできます。