This package is designed to extract Eloquent Relations from a given Model using reflection and return type checking.
You can install the package via composer:
composer require plank/larelations
Given an instance of an Eloquent Model or its class-string, this package will extract all relations defined on the model, and return them in a Collection of RelationInstance
items.
Each RelationInstance
has the ReflectionMethod ($method
) where the relation was defined, as well as an instance of the Relation
($relation). There are some helper methods on the RelationInstance
that allow you to classify the type relation it is (ie. child, parent, pivotted, etc).
$extractor = new \Plank\Larelations\Extractor();
$instances = $extractor->extract($post);
$instances = \Plank\Larelations\Facades\Larelations::extract(Post::class);
foreach ($instances as $instance) {
if ($instance->isChild()) {
// Handle child types of relations
}
if ($instance->relation instanceof \Znck\Eloquent\Traits\BelongsToThrough) {
// Handle custom relation
}
// The method property is the \ReflectionMethod of the relation instance
$instance->method->getName(); // posts
}
composer test
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.
If you discover a security vulnerability within Larelations, please send an e-mail to [email protected]. All security vulnerabilities will be promptly addressed.