Laravel Packages

Improved model generation with Laracademy Generators

Published
Improved model generation with Laracademy Generators image

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.

Give Laracademy Generators a try if you are looking for away to speed up your development process. You can check out the source code of Laracademy Generators at Github.

Diaa Fares photo

Laravel Artisan, Web Developer, Tech Geek

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article
Queue totalSize() and JobInterrupted Event in Laravel 13.31 image

Queue totalSize() and JobInterrupted Event in Laravel 13.31

Read article
Find Unexpected Test Inputs with Fuzz for Pest image

Find Unexpected Test Inputs with Fuzz for Pest

Read article
Laravel Rulebook: Business Rules That Change by Date image

Laravel Rulebook: Business Rules That Change by Date

Read article
Taylor disabled GitHub Issues on most Laravel open-source packages. image

Taylor disabled GitHub Issues on most Laravel open-source packages.

Read article