Passed
Pull Request — master (#221)
by Christopher
11:11 queued 04:57
created

MetadataRelationsTrait::getRelationshipsHasMany()   A

Complexity

Conditions 5
Paths 4

Size

Total Lines 21
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 13
c 3
b 0
f 0
dl 0
loc 21
rs 9.5222
cc 5
nc 4
nop 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: alex
5
 * Date: 13/02/20
6
 * Time: 1:08 PM.
7
 */
8
namespace AlgoWeb\PODataLaravel\Models;
9
10
use Illuminate\Database\Eloquent\Model;
11
use Illuminate\Database\Eloquent\Relations\BelongsTo;
12
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
13
use Illuminate\Database\Eloquent\Relations\MorphMany;
14
use Illuminate\Database\Eloquent\Relations\MorphOne;
15
use Illuminate\Database\Eloquent\Relations\MorphToMany;
16
use Illuminate\Database\Eloquent\Relations\Relation;
17
use Mockery\Mock;
18
use POData\Common\InvalidOperationException;
19
20
trait MetadataRelationsTrait
21
{
22
    /**
23
     * @var array|string[]|null a cache for the relationship names
24
     */
25
    private static $relationNames = null;
26
    /**
27
     * Get model's relationships.
28
     *
29
     * @throws InvalidOperationException
30
     * @throws \ReflectionException
31
     * @return array
32
     */
33
    public function getRelationships()
34
    {
35
        return self::$relationNames =  self::$relationNames ?? ModelReflectionHelper::getRelationshipsFromMethods(/** @scrutinizer ignore-type */$this);
36
    }
37
}
38