Ouzo\Db\ModelQueryBuilderHelper::extractRelations PHP Метод

extractRelations() публичный статический Метод

public static extractRelations ( Model $root, string | Relation $relationSelector ) : Relation[]
$root Ouzo\Model
$relationSelector string | Relation
Результат Relation[]
    public static function extractRelations(Model $root, $relationSelector)
    {
        $relations = array();
        if ($relationSelector instanceof Relation) {
            $relations[] = $relationSelector;
        } else {
            $relationNames = explode('->', $relationSelector);
            $model = $root;
            foreach ($relationNames as $name) {
                $relation = $model->getRelation($name);
                $relations[] = $relation;
                $model = $relation->getRelationModelObject();
            }
        }
        return $relations;
    }

Usage Example

 /**
  * @test
  */
 public function shouldExtractInlineRelation()
 {
     //given
     $root = OrderProduct::metaInstance();
     $inlineRelation = new Relation('orderProduct', 'Test\\OrderProduct', 'id', 'id_product', false);
     //when
     $relations = ModelQueryBuilderHelper::extractRelations($root, $inlineRelation);
     //then
     Assert::thatArray($relations)->containsExactly($inlineRelation);
 }
All Usage Examples Of Ouzo\Db\ModelQueryBuilderHelper::extractRelations