Laravel 提供 Artisan 命令行工具让你使用 generators 去节省时间。 比如我们熟悉的 make:controller 、make:model 和 make:migration。
在这个想法的基础上,一个名为 Laracademy Generators 的第三方软件包诞生了。它会基于数据库结构自动生成的模型。(哇塞!这好方便呀!)
安装:
让我们用讨论的形式,看看 Laracademy Generator 工作时的流程。
首先,一如既往地创建迁移:
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 migrate Migrated: 2016_08_26_145636_create_posts_table
接着安装 Laracademy Generators,也是在终端中运行命令:
composer require "laracademy/generators"
然后将下面的语句添加到 config/app.php 文件的 providers 数组中:
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 cli,会看到一个新的命令出现在列表中:
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。