Laravel provides the Artisan command line tool that allows you to save time by including several generators. Some examples include make:controller, make:model, and make:migration.
Building on top of this idea is a third party package named Laracademy Generators that will automatically generate your models based on your database structure.
Installation:
Let’s explore the workflow when using Laracademy Generators:
First, create your migration as always:
php artisan make:migration create_posts_table —create=posts
Then add your fields to the generated migration file. For example, your field might look like:
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();
});
}
After that, you will migrate your tables by execution the following command in your terminal:
php artisan migrate
Migrated: 2016_08_26_145636_create_posts_table
Now let’s install Laracademy Generators:
composer require "laracademy/generators"
Then add Laracademy Generators into your config/app.php file:
Laracademy\Generators\GeneratorsServiceProvider::class
Alternatively, you can add the provider to your ‘app/Providers/AppServiceProvider.php’ if you only want to use this provider for local development:
public function register()
{
if($this->app->environment() == 'local') {
$this->app->register('\Laracademy\Generators\GeneratorsServiceProvider');
}
}
Now you have everything you need to start using the Laracademy Generators. Let’s explore how to use it and what are the available options.If you check your Artisan cli, a new command will appear in the list:
generate:modelfromtable
First, you can pass –all flag to tell Laracademy Generators to generate models for all tables existed in your database:
php artisan generate:modelfromtable --all
Another option is –table which makes you be able to specify the tables that you want Laracademy Generators to generate models for, like this:
php artisan generate:modelfromtable --table=posts
Or multiple tables at once:
php artisan generate:modelfromtable --table=users,posts
There are another two options; one is for choosing your database connection (–connection=example) and the second is for specifying you where the generated models goes (–folder=app\Models).
Take a look at what the generated model looks like, if you are following along with me in the posts table example, the generated app/Post.php content will look like this:
Just note that the generated code will often require some edits but it gives you a great starting point.
0 comments:
Post a Comment
Thanks