Home

Awesome

FlyModel: Dynamic Laravel Models on the Fly

FlyModel is a Laravel package that empowers you to create and manage models dynamically, on the fly !.

It allows to define flexible and customizable models and model fields without needing to change the database schema.

This package streamlines your workflow by eliminating the need to define models explicitly in your codebase. Instead, you can generate and interact with models as needed, based on a unique "deck" identifier.

The package uses FlexyField Package as Dynamic Field Engine.

For More Info Visit: https://github.com/AuroraWebSoftware/FlexyField

🚀 Features

📦 Installation

To get started with FlyModel, follow these steps:

Install the Package

Add FlyModel to your project using Composer:

composer require aurorawebsoftware/flymodel

Run the Migration

Create the necessary database table for storing fly models:

php artisan migrate

📘 Usage

Creating and Using Fly Models

With FlyModel, you can dynamically create models and perform various operations. Here’s how:

Instantiate a Model with a Deck

$building = FlyModel::of('building');

Save the Model if not saved or created before

$building->save();

Perform Field Operations

$building->flexy->name = 'Headquarter Building'
$building->flexy->address = 'Ali Pasha Ave. number 10';
$building->flexy->city = 'Ä°stanbul';
$building->flexy->floor = 7;
$building->flexy->area = 313;
$building->flexy->active = true;

$building->save();

Perform Eloquent Operations

$buildings = FlyModel::of('building')->all();

$istanbulBuildings = FlyModel::of('building')
                        ->where('flexy_city', 'Ä°stanbul')
                        ->get();

$largeBuildings = FlyModel::of('building')
                    ->where('flexy_area', '>' 500)
                    ->orderBy('flexy_area')
                    ->get();
                    
$highBuildingsInIstanbul = FlyModel::of('building')
                            ->where('flexy_floor', '>' 10)
                            ->where('flexy_city', 'Ä°stanbul')
                            ->get();

🧪 Testing

FlyModel integrates with Laravel’s testing environment. Here’s an example of how to write tests for it:

💬 Contributing

We welcome contributions to improve FlyModel!