【发布时间】:2015-06-23 14:36:49
【问题描述】:
我在app/ 中有一个名为models 的目录,我在其中放置了所有模型类。现在我想更改以下命令输出生成的类的目录
php artisan make:model SomeModel
【问题讨论】:
标签: php laravel model laravel-artisan
我在app/ 中有一个名为models 的目录,我在其中放置了所有模型类。现在我想更改以下命令输出生成的类的目录
php artisan make:model SomeModel
【问题讨论】:
标签: php laravel model laravel-artisan
使用介质https://medium.com/@codingcave/organizing-your-laravel-models-6b327db182f9 上的本教程查看此内容。
它是扩展ModelMakeCommand 的更好解决方案,这样您将运行php artisan make:model SomeModel 而不是php artisan make:model 'Test\SomeModel',并且您仍然会在SomeModel.php 文件夹中获得SomeModel.php 的'Test\SomeModel' 命名空间
【讨论】:
如果你太懒不想每次都输入Models这个词,可以试试我的https://github.com/bangnokia/laravel-models-folder
【讨论】:
您还可以查看创建模型时创建的 www/yourfolder/database/php 文件。
【讨论】:
如果您想在特定文件夹上手动创建模型。例如,如果您想创建模型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';
}
当然你也可以使用 Artisan 命令
php artisan make:model "Models\Info"
如果你想调用那个模型Info你创建一个视图
<?php
$users = App\Models\Info::all();
foreach ($users as $user) {
echo $user->name;
}
它会显示所有用户的名字
【讨论】:
我发现它应该是:
php artisan make:model ModelFolder\\SomeModel
【讨论】:
app/myspace/etc Laravel 在内部将所有 / 更改为 \` using str_replace()`,因此使用单正斜杠 'OR' 双反斜杠(即逃脱)应该可以工作,这是你的选择!
你不能,而且,如果你正在研究 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 Test\SomeModel