This package is manager for laravel or lumen ORM (object relational mapping) Model. You can generate relation method and control Model development in your project. Relation method is method in Model class that reference to another Model for get data in related Model. For example you have a model User and Phone with relation one to one. Both model will be called connected if there is relation method in both class. In class User.php there should be
class User extends Authenticatable
{
/**
* Get the phone record associated with the user.
*/
public function phone()
{
return $this->hasOne(Phone::class);
}
}
In class Phone.php
class Phone extends Model
{
/**
* Get the user that owns the phone
*/
public function user()
{
return $this->belongsTo(User::class);
}
}
When you are working with very large projects, you might feel more difficult to connect all models in your project. This package can be auto generate all relation method of your project's model, even relation method that you don't need right now. And with this package we hope development relation method of Models faster and easier.
require with composer:
composer require flipbox/orm-manager
Add service provider for Laravel in the file config/app.php
Flipbox\OrmManager\OrmManagerServiceProvider::class,
Add service provider for Lumen in the file bootstrap/app.php
$app->register(Flipbox\OrmManager\OrmManagerServiceProvider::class);
See php artisan
in console, if you install this package correctly you will see list of features with prefix orm:
Type php artisan orm:list
in console, that will show you list of your project model and its properties. for example:
Type php artisan orm:detail User
in console, that will show you detail of selected Model. for example:
How it works? Generator it first check the database connection of your project, if you has been created the database and its connected, it will check required option of relation in the database schema such as primary key
, foreign key
, pivot table
, etc. And if you hasn't yet create database or its not connected, it will offer some required options of relation. And after required option is fulfilled it will check is method exists in the method, than will create method in the model if hasn't.
php artisan orm:connect User hasMany Phone
It will generate method in class Model User
- first argument is Model where method will be created
- second is relation name such as
hsaOne
,hasMany
,belongsTo
,belongsToMany
, etc. - third is reference Model.
php artisan orm:both-connect User oneToMany Phone
It will generate method in class Model User and Phone
- first argument is first Model
- second is both-relation name such as
oneToOne
,oneToMany
,manyToMany
,morphOneToOne
, etc. - third is second Model.
important *) it only work if you has been created database and project is connected.
php artisan orm:auto-connect
it will search possible connection between two models or more, and generate method to each model, sometime need your approval to decide relation type.