dynamic relations for Laravel and Lumen
patinthehat/laravel-dynamic-relations is a Laravel package for dynamic relations for laravel and lumen.
It currently has 1 GitHub stars and 482 downloads on Packagist (latest version v1.1.0).
Install it with composer require patinthehat/laravel-dynamic-relations.
Discover more Laravel packages by patinthehat
or browse all Laravel packages to compare alternatives.
Last updated
An extension of Illuminate\Database\Eloquent\Model that allows relationships to be called as dynamic properties, such as:
$prop = "myProp";
$user->$prop->toArray();
####Installation
Install with composer: composer require patinthehat/laravel-dynamic-relations
####Usage
To use, extend the DynamicModel class. In the child class, override the $dynamicRelations array property, adding items that correlate to relation names.
namespace App\Models;
use Permafrost\DynamicRelations\DynamicModel;
class User extends DynamicModel
{
public static $dynamicRelations = [
'abc', 'def',
];
public function abc()
{
return $this->hasMany('App\Models\Abc');
}
public function def()
{
return $this->hasMany('App\Models\Def');
}
}
Now, your relations can be accessed dynamically:
$user = User::find(1);
$prop = "abc";
$user->$prop->toArray();