【问题标题】:Lumen (Laravel) Eloquent php artisan make:model not definedLumen (Laravel) Eloquent php artisan make:model 未定义
【发布时间】: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.*)

【问题讨论】:

    标签: php laravel-5.1 lumen


    【解决方案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】:
          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. 确保您已取消注释 bootstrap/app.php 中的以下行以允许服务提供商参与您的项目:

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

          【讨论】:

            【解决方案6】:

            您看到此错误是因为 make:model 没有 Lumen。

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

            话虽如此,我刚刚找到了这个包,我已经添加到一个流明安装中,它似乎工作正常https://github.com/webNeat/lumen-generators#installation

            希望这会有所帮助!

            【讨论】:

              猜你喜欢
              • 2015-07-24
              • 1970-01-01
              • 2015-05-05
              • 2021-10-28
              • 2022-07-03
              • 2019-02-26
              • 2021-09-12
              • 2015-08-01
              • 2023-01-04
              相关资源
              最近更新 更多