Laracademy Generators 提高模型生成效率
发布时间:作者: Diaa Fares
Laravel 提供了 Artisan 命令行工具,它允许您通过包含多个生成器来节省时间。一些例子包括 make:controller、make:model 和 make:migration。
在这些想法之上,一个名为 Laracademy Generators 的第三方包可以根据您的数据库结构自动生成模型。
安装
让我们探索使用 Laracademy Generators 的工作流程
首先,像往常一样创建您的迁移文件
php artisan make:migration create_posts_table —create=posts
然后将您的字段添加到生成的迁移文件中。例如,您的字段可能如下所示
public function up(){ Schema::create(‘posts’, function (Blueprint $table) { $table->increments(‘id’); $table->string(‘title’); $table->text(‘body’); $table->boolean(‘featured’); $table->datetime(‘publish_date’); $table->timestamps(); });}
之后,您将在终端中执行以下命令来迁移您的表
php artisan migrateMigrated: 2016_08_26_145636_create_posts_table
现在让我们安装 Laracademy Generators
composer require "laracademy/generators"
然后将 Laracademy Generators 添加到您的 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 Generators 的所有必要条件。让我们探索如何使用它以及有哪些可用选项。如果您查看 Artisan 命令行工具,您将在列表中看到一个新的命令
generate:modelfromtable
首先,您可以传递 –all 标志,告诉 Laracademy Generators 为数据库中存在的全部表生成模型
php artisan generate:modelfromtable --all
另一个选项是 –table,它允许您指定您希望 Laracademy Generators 为其生成模型的表,例如
php artisan generate:modelfromtable --table=posts
或者一次指定多个表
php artisan generate:modelfromtable --table=users,posts
还有另外两个选项;一个是选择您的数据库连接 (–connection=example),另一个是指定您希望生成的模型存放的位置 (–folder=app\Models)。
让我们看看生成的模型是什么样的。如果您跟我一样以 posts 表为例,生成的 app/Post.php 内容将如下所示
请注意,生成的代码通常需要一些编辑,但它为您提供了一个很好的起点。
如果您正在寻找一种加快开发流程的方法,请尝试使用 Laracademy Generators。您可以在 Github 上查看 Laracademy Generators 的源代码。