public static extractRelations ( |
||
$root | ||
$relationSelector | string | |
|
return |
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;
}
/** * @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); }