我有一个名为models
的目录,位于app/
内,我放置了所有的模型类。现在我想要更改目录,让以下命令输出生成的类:
php artisan make:model SomeModel
我有一个名为models
的目录,位于app/
内,我放置了所有的模型类。现在我想要更改目录,让以下命令输出生成的类:
php artisan make:model SomeModel
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
app/myspace/etc
,Laravel 会在内部使用 str_replace()
将所有 /
替换为 \\
,因此你可以使用单斜杠或双反斜杠(即转义)中的任一种来工作,取决于你的选择! - ChrisHModels
中创建模型info
。请在先前创建的文件夹Models
中创建名为info.php
的文件。在info.php
中编写以下代码。<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Info extends Model
{
// your code
protected $table = 'tb_users';
}
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'
文件夹中。
php artisan make:model Test\SomeModel
。 - Neel