Changeset 3966

Show
Ignore:
Timestamp:
03/10/08 21:55:24 (16 months ago)
Author:
jwage
Message:

fixes #835

Location:
branches/0.10
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/0.10/lib/Doctrine/Import/Schema.php

    r3965 r3966  
    412412                $class = isset($relation['class']) ? $relation['class']:$alias; 
    413413                 
     414                $relation['class'] = $class; 
     415                $relation['alias'] = isset($relation['alias']) ? $relation['alias'] : $alias; 
     416                 
    414417                // Attempt to guess the local and foreign 
    415418                if (isset($relation['refClass'])) { 
     
    417420                    $relation['foreign'] = isset($relation['foreign']) ? $relation['foreign']:Doctrine::tableize($class) . '_id'; 
    418421                } else { 
    419                     $relation['local'] = isset($relation['local']) ? $relation['local']:Doctrine::tableize($class) . '_id'; 
     422                    if ( ! isset($relation['local'])) { 
     423                        $classColumnName = Doctrine::tableize($relation['class']) . '_id'; 
     424                        $aliasColumnName = Doctrine::tableize($relation['alias']) . '_id'; 
     425                         
     426                        if (isset($properties['columns'][$classColumnName])) { 
     427                            $local = $classColumnName; 
     428                        } else if (isset($properties['columns'][$aliasColumnName])) { 
     429                            $local = $aliasColumnName; 
     430                        } else { 
     431                            throw new Doctrine_Import_Exception('Could not guess local column name for relation: ' . $name); 
     432                        } 
     433                         
     434                        $relation['local'] = $local; 
     435                    } 
     436                     
    420437                    $relation['foreign'] = isset($relation['foreign']) ? $relation['foreign']:'id'; 
    421438                } 
    422              
    423                 $relation['alias'] = isset($relation['alias']) ? $relation['alias'] : $alias; 
    424                 $relation['class'] = $class; 
    425439                 
    426440                if (isset($relation['refClass'])) { 
     
    470484        foreach($this->_relations as $className => $relations) { 
    471485            foreach ($relations AS $alias => $relation) { 
     486                if ((isset($relation['equal']) && $relation['equal']) || (isset($relation['auto_complete']) && $relation['auto_complete'] === false)) { 
     487                    continue; 
     488                } 
     489                 
    472490                $newRelation = array(); 
    473491                $newRelation['foreign'] = $relation['local']; 
  • branches/0.10/tests/schema.yml

    r3961 r3966  
    1919      primary: true 
    2020      autoincrement: true 
    21     user_id: 
     21    schema_test_user_id: 
    2222      type: integer(4) 
    23     contact_id: 
     23    schema_test_contact_id: 
    2424      type: integer(4) 
    2525    first_name: 
     
    5050      primary: true 
    5151      autoincrement: true 
    52     contact_id: 
     52    schema_test_contact_id: 
    5353      type: integer(4) 
    5454    phone_number: 
     
    6969    type: 
    7070      type: string(255) 
    71   options: 
    72     subclasses: [SchemaTestInheritanceChild1] 
    7371 
    7472SchemaTestInheritanceChild1: