我在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'