【问题标题】:PhP Artisan command to create class from database Laravel 5?PhP Artisan 命令从数据库 Laravel 5 创建类?
【发布时间】:2015-09-16 15:44:16
【问题描述】:

是否存在 php artisan 命令来从数据库创建所有必要的类?

我有一个填充了几个表的数据库(使用 MySQL 运行),并且我想要一个 php 类抽象,这意味着每个琐碎的过程(创建、更新、删除、插入)都是通过这个过程自动创建的代表我的数据库中的表的类。

关键是能够为 CRUD 调用具有相同功能的每个类:

User->create(); // may return the last id inserted

Book->update("create_date", "2015-09-09");

User->delete(1);   // may remove the user with primary key "1"
Book->delete(410); // may remove the book with primary key "410"

或者是否有现有的外部 Laravel 5 兼容插件来执行此任务?

【问题讨论】:

    标签: php database class laravel-5 php-5.6


    【解决方案1】:

    您要查找的是make:model 命令。

    例如:

    php artisan make:model User
    

    将为您的 User 表创建一个模型(命名约定都可以被覆盖)。

    您需要为每个表单独运行make:model Name 命令,Artisan 无法自动为您执行每一个命令,但是一旦创建,您将拥有所有可用的标准 Eloquent methods,这将允许您 @ 987654325@.

    【讨论】:

    • 该命令就像一个魅力,但我有一个空类:class Book extends Model { }。知道我已经在config/database.php 中配置了我的数据库连接。这正常吗?
    • 是的,完全正常。您的 Book 类扩展了 Model,这允许它继承用于数据库查询的 Eloquent 方法。查看我回答中的文档以了解有关 Eloquent 的更多信息。
    【解决方案2】:

    您可以使用工匠命令: 安装 Laracademy 生成器:

    composer require "laracademy/generators"
    

    然后将 Laracademy 生成器添加到您的 config/app.php 文件中:

    Laracademy\Generators\GeneratorsServiceProvider::class
    

    或者,如果您只想将此提供程序用于本地开发,您可以将提供程序添加到您的“app/Providers/AppServiceProvider.php”:

    public function register(){
    if($this->app->environment() == 'local') {
        $this->app->register('\Laracademy\Generators\GeneratorsServiceProvider');
    }}
    

    现在您拥有开始使用 Laracademy 生成器所需的一切。让我们探索如何使用它以及有哪些可用选项。如果您检查您的 Artisan cli,列表中将出现一个新命令:

    generate:modelfromtable
    

    首先,您可以传递 –all 标志来告诉 Laracademy 生成器为您数据库中存在的所有表生成模型:

    php artisan generate:modelfromtable --all
    

    希望这对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2015-04-14
      • 2019-04-02
      • 2014-04-01
      • 2016-11-03
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 2016-09-11
      相关资源
      最近更新 更多