hedronium\Jables\DependencyResolver::resolve PHP Method

resolve() protected method

protected resolve ( $table )
    protected function resolve($table)
    {
        $definition = $this->loader->get($table);
        if (!$definition) {
            throw new \Exception("{$table} definition doesn't exist.");
        }
        $sub_tree = ['name' => $table, 'relations' => []];
        $foreign_keys = isset($definition->foreign) ? $definition->foreign : [];
        foreach ($definition->fields as $field_name => $field_def) {
            if (isset($field_def->foreign)) {
                $foreign_keys[$field_name] = $field_def->foreign;
            }
        }
        foreach ($foreign_keys as $field_name => $foreign) {
            list($foreign_table, $foreign_field) = explode('.', $foreign);
            $sub_tree['relations'][] = ['from_table' => $table, 'to_table' => $foreign_table, 'from_field' => $field_name, 'to_field' => $foreign_field, 'table' => $this->resolve($foreign_table)];
        }
        return $sub_tree;
    }