Lumen (Laravel) Eloquent php artisan make:model 未定义
Posted
技术标签:
【中文标题】Lumen (Laravel) Eloquent php artisan make:model 未定义【英文标题】:Lumen (Laravel) Eloquent php artisan make:model not defined 【发布时间】:2016-03-24 05:05:45 【问题描述】:我将 Lumen 1.0 用于 API 项目。
我已经通过在 bootstrap/app.php 文件中取消注释以下行来启用 Eloquent:
$app->withEloquent();
但是当我想通过迁移创建我的第一个模型时,它失败了:
php artisan make:model Book --migration
错误信息:
[InvalidArgumentException]
Command "make:model" is not defined.
Did you mean one of these?
make:seeder
make:migration
关于 Eloquent 的 Laravel 文档 (http://laravel.com/docs/5.1/eloquent#defining-models)。
Lumen doc (http://lumen.laravel.com/docs/installation) 不包含 Eloquent doc,因为它默认不启用。
你有什么想法可以避免这个错误吗?
添加详细信息
php artisan --version
显示:
Laravel Framework version Lumen (5.1.6) (Laravel Components 5.1.*)
【问题讨论】:
【参考方案1】:有一些包可以帮助你拥有你在 Laravel 上拥有的所有 artisan 命令。 安装下面的包以获得更多的工匠命令。 https://github.com/flipboxstudio/lumen-generator
【讨论】:
请更明显地说明这提供了超出现有答案的额外贡献,例如johannchopin 已经支持的更老的一个【参考方案2】:$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);将此行添加到“bootstrap\app.php”并保存此文件然后执行命令。它将起作用。
【讨论】:
【参考方案3】:如果您使用php artisan list
检查所有可用命令,您会发现您没有laravel
提供的所有默认命令。但是您可以使用lumen-generator
包获得最重要的信息(不要与lumen-generators
混淆)。它的优点是提供的命令比前面提到的更多。
要使用它,只需使用 composer
安装它:
composer require flipbox/lumen-generator
然后在您的bootstrap/app.php
文件中启用它:
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
您现在可以使用artisan
使用所有这些新命令:
key:generate Set the application key
make:command Create a new Artisan command
make:controller Create a new controller class
make:event Create a new event class
make:job Create a new job class
make:listener Create a new event listener class
make:mail Create a new email class
make:middleware Create a new middleware class
make:migration Create a new migration file
make:model Create a new Eloquent model class
make:policy Create a new policy class
make:provider Create a new service provider class
make:seeder Create a new seeder class
make:test Create a new test class
看看官方文档:https://github.com/flipboxstudio/lumen-generator
【讨论】:
【参考方案4】:只需在 app 目录中手动创建模型文件
例子
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
protected $table = ‘articles’;
protected $fillable = [
‘title’,
‘description’,
‘body’
];
【讨论】:
【参考方案5】:进入项目目录并使用以下命令将生成器包添加到您的composer.json
:
composer require wn/lumen-generators
将以下代码段添加到app/Providers/AppServiceProvider.php
:
public function register()
if ($this->app->environment() == 'local')
$this->app->register('Wn\Generators\CommandsServiceProvider');
确保您已取消注释 bootstrap/app.php
中的以下行以允许服务提供商参与您的项目:
$app->register(App\Providers\AppServiceProvider::class);
在项目目录(文档根目录)上运行 php artisan list
。现在您将在那里看到新项目。
【讨论】:
【参考方案6】:您看到此错误是因为 make:model
没有 Lumen。
要查看您可以使用的所有工匠命令的列表,只需运行php artisan
。
话虽如此,我刚刚找到了这个包,我已经添加到一个流明安装中,它似乎工作正常https://github.com/webNeat/lumen-generators#installation
希望这会有所帮助!
【讨论】:
以上是关于Lumen (Laravel) Eloquent php artisan make:model 未定义的主要内容,如果未能解决你的问题,请参考以下文章
Lumen/Laravel Eloquent - 按数据透视表中的属性过滤
在 Laravel(流明)上使用 Mockery 模拟 Eloquent 模型不起作用