LaravelPackages.net
Acme Inc.
Toggle sidebar
patinthehat/laravel-dynamic-relations

dynamic relations for Laravel and Lumen

482
1
v1.1.0
About patinthehat/laravel-dynamic-relations

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

Laravel DynamicRelations


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();
Comments