拉拉维尔 5 模型文件夹



我在app/里面有一个名为models的目录,我在其中放置了我所有的模型类。现在我想更改以下命令输出生成的类的目录

php artisan make:model SomeModel

你不能,如果你坚持拉拉维尔的宇宙版本,你不应该。Laravel 5为其所有类文件提供并假设PSR-4命名约定。 这意味着模型(和所有类)应根据其完整的类名进行放置。

当你说

php artisan make:model SomeModel

您实际上是在创建一个全名为 AppSomeModel 的模型,因此artisan创建以下文件。

app/SomeModel.php

如果你说

php artisan make:model 'TestSomeModel'

您将创建一个全名为 AppTestSomeModel 的模型,Laravel将创建以下文件

app/Test/SomeModel.php

因此,模型的完整类名(包括命名空间)决定了类定义文件的位置。

我发现它应该是:

php artisan make:model ModelFolder\SomeModel

如果要在特定文件夹上手动创建模型。如果要在文件夹 Models 中创建模型info,例如。在之前创建的文件夹"模型"中创建名为info.php的文件。以下是您应该用info.php编写这样的代码

<?php namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Info extends Model
{
    // your code
    protected $table = 'tb_users';
}

当然,您也可以使用工匠命令 php artisan make:model "ModelsInfo"

如果要在创建视图Info调用该模型

<?php
$users = AppModelsInfo::all();
foreach ($users as $user) {
    echo $user->name;
}

它将显示用户的所有名称

您还可以查看创建模型时创建的 www/yourfolder/database/php 文件。

如果你太懒了,不想每次都输入单词Models,你可以试试这个,我的 https://github.com/bangnokia/laravel-models-folder

使用本教程在中等 https://medium.com/@codingcave/organizing-your-laravel-models-6b327db182f9 上对此进行研究。扩展ModelMakeCommand是一个更好的解决方案,这样您就可以运行php artisan make:model SomeModel而不是php artisan make:model 'TestSomeModel',并且您仍然可以'TestSomeModel'文件夹中SomeModel.php命名空间'Test'

相关内容

最新更新