Lumen(Laravel)Eloquent php工匠制作:模型没有定义

时间:2015-12-17 16:24:16

标签: php laravel-5.1 lumen

我将Lumen 1.0用于API项目。

我已经通过取消注释 bootstrap / app.php 文件中的以下行来启用Eloquent:

Traceback (most recent call last):
File "/Users/santanna_santanna/PycharmProjects/APIGTrends/TrendVesting.py", line 670, in <module>
line_plot(list_of_lists[0],list_of_lists[1],datelist)
File "/Users/santanna_santanna/PycharmProjects/APIGTrends/TrendVesting.py", line 587, in line_plot
norm_list1=[float(i)/max(list1) for i in list1]
TypeError: unsupported operand type(s) for /: 'float' and 'str'

但是当我想用迁移创建我的第一个模型时,它失败了:

$app->withEloquent();

错误讯息:

php artisan make:model Book --migration

Laravel关于Eloquent(http://laravel.com/docs/5.1/eloquent#defining-models)的文档。

Lumen doc(http://lumen.laravel.com/docs/installation)不包含Eloquent doc,因为默认情况下不会启用它。

您有什么想法可以避免此错误吗?

添加详细信息

  [InvalidArgumentException]
  Command "make:model" is not defined.
  Did you mean one of these?
      make:seeder
      make:migration

显示:

php artisan --version

6 个答案:

答案 0 :(得分:27)

您看到此错误,因为Lumen未附带make:model

要查看您可以使用的所有工匠命令列表,请运行php artisan

话虽如此,我确实找到了我已添加到流明安装中的这个包,它似乎工作得很好https://github.com/webNeat/lumen-generators#installation

希望这有帮助!

答案 1 :(得分:12)

如果使用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

答案 2 :(得分:6)

  1. 转到项目目录并使用以下命令将生成器包添加到composer.json:

    composer require wn/lumen-generators
    
  2. 将以下代码段添加到app/Providers/AppServiceProvider.php

    public function register()
    {
        if ($this->app->environment() == 'local') {
            $this->app->register('Wn\Generators\CommandsServiceProvider');
        }
    }
    
  3. 确保您在bootstarp/app.php中取消注释了以下行,以允许项目中的服务提供商:

    $app->register(App\Providers\AppServiceProvider::class);
    
  4. 在项目目录(文档根目录)上运行php artisan list,现在您将看到新项目。

答案 3 :(得分:0)

只需在应用目录中手动创建模型文件

示例

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Article extends Model {
    protected $table = ‘articles’;

    protected $fillable = [
        ‘title’,
        ‘description’,
        ‘body’
    ];
}

答案 4 :(得分:0)

$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);将此行添加到“bootstrap\app.php”中并保存此文件,然后执行命令。它会起作用。

答案 5 :(得分:0)

有一些软件包可以帮助您拥有 Laravel 上的所有 artisan 命令。 安装下面的包以获得更多的工匠命令。 https://github.com/flipboxstudio/lumen-generator