diff --git a/src/Parser.php b/src/Parser.php index 3afaf6b..20bfbdc 100755 --- a/src/Parser.php +++ b/src/Parser.php @@ -5,6 +5,8 @@ use \Illuminate\Database\Eloquent\Relations\HasMany; use \Illuminate\Database\Eloquent\Relations\BelongsTo; use \Illuminate\Database\Eloquent\Relations\BelongsToMany; +use \Illuminate\Database\Eloquent\Relations\MorphOne; +use \Illuminate\Database\Eloquent\Relations\MorphMany; use \Illuminate\Database\Eloquent\Builder as EloquentBuilder; use \Illuminate\Database\Query\Builder as QueryBuilder; use \Illuminate\Support\Facades\Config; @@ -432,6 +434,12 @@ protected function parseWith($withParam) $secondKey = $primaryKey; } + if($relationType === 'MorphOne' || $relationType === 'MorphMany') + { + $firstKey = $primaryKey; + $secondKey = $foreignKey; + } + //Check if we're on level 1 (e.g. a and not a.b) if($firstKey !== null && $previousHistoryPath == '') { @@ -788,6 +796,16 @@ protected function getRelationType($relation) { return 'HasManyThrough'; } + + if($relation instanceof MorphOne) + { + return 'MorphOne'; + } + + if($relation instanceof MorphMany) + { + return 'MorphMany'; + } } /**