src/Relations/BelongsToMorph.php
public static function build(Model $parent, $related, $name, $type = null, $id = null, $otherKey = null, $relation = null)
    {
        // If no relation name was given, we will use this debug backtrace to extract
        // the calling method's name and use that as the relationship name as most
        // of the time this will be what we desire to use for the relationships.
        if (is_null($relation)) {
            [$current, $caller] = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);

            $relation = $caller['function'];
        }

        $morphName = array_get(array_flip(Relation::morphMap()), $related, $related);

        [$type, $id] = self::getMorphs(snake_case($name), $type, $id);

        $instance = new $related();

        // Once we have the foreign key names, we'll just create a new Eloquent query
        // for the related models and returns the relationship instance which will
        // actually be responsible for retrieving and hydrating every relations.
        $query = $instance->newQuery();

        $otherKey = $otherKey ?: $instance->getKeyName();

        return new self($query, $parent, $morphName, $type, $id, $otherKey, $relation);
    }
public static function build(Model $parent, $related, $name, $type = null, $id = null, $otherKey = null, $relation = null)
    {
        // If no relation name was given, we will use this debug backtrace to extract
        // the calling method's name and use that as the relationship name as most
        // of the time this will be what we desire to use for the relationships.
        if (is_null($relation)) {
            [$current, $caller] = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);

            $relation = $caller['function'];
        }

        $morphName = array_get(array_flip(Relation::morphMap()), $related, $related);

        [$type, $id] = self::getMorphs(snake_case($name), $type, $id);

        $instance = new $related();

        // Once we have the foreign key names, we'll just create a new Eloquent query
        // for the related models and returns the relationship instance which will
        // actually be responsible for retrieving and hydrating every relations.
        $query = $instance->newQuery();

        $otherKey = $otherKey ?: $instance->getKeyName();

        return new self($query, $parent, $morphName, $type, $id, $otherKey, $relation);
    }
public static function build ( Model $ parent , $ related , $ name , $ type = null , $ id = null , $ otherKey = null , $ relation = null ) { // If no relation name was given, we will use this debug backtrace to extract // the calling method's name and use that as the relationship name as most // of the time this will be what we desire to use for the relationships. if ( is_null ( $ relation ) ) { [ $ current , $ caller ] = debug_backtrace ( DEBUG_BACKTRACE_IGNORE_ARGS , 2 ) ; $ relation = $ caller [ 'function' ] ; } $ morphName = array_get ( array_flip ( Relation :: morphMap ( ) ) , $ related , $ related ) ; [ $ type , $ id ] = self :: getMorphs ( snake_case ( $ name ) , $ type , $ id ) ; $ instance = new $ related ( ) ; // Once we have the foreign key names, we'll just create a new Eloquent query // for the related models and returns the relationship instance which will // actually be responsible for retrieving and hydrating every relations. $ query = $ instance -> newQuery ( ) ; $ otherKey = $ otherKey ? : $ instance -> getKeyName ( ) ; return new self ( $ query , $ parent , $ morphName , $ type , $ id , $ otherKey , $ relation ) ; }
Define an inverse morph relationship.

@param Model  $parent
@param string $related
@param string $name
@param string $type
@param string $id
@param string $otherKey
@param string $relation

@return \Illuminate\Database\Eloquent\Relations\BelongsTo
Define an inverse morph relationship .