src/Table.php
protected function addForeignKeyColumn($column, Table $table, $key = null)
        {
            $add_table = clone $table;
            $key = ($key !== null) ? $key : $add_table->getIdColumn();
            $foreign_column = $add_table->getColumn($key);
            switch ($foreign_column['type']) {
                case 'integer':
                    $this->addInteger($column, $foreign_column['length'], $foreign_column['default_value'], false, false, $foreign_column['unsigned']);
                    break;
                case 'float':
                    $this->addFloat($column, $foreign_column['precision'], $foreign_column['default_value'], false, false, $foreign_column['unsigned']);
                    break;
                case 'varchar':
                    $this->addVarchar($column, $foreign_column['length'], $foreign_column['default_value'], false);
                    break;
                case 'text':
                case 'boolean':
                case 'blob':
                    throw new Exception('Cannot use a text, blob or boolean column as a foreign key');
            }
            $this->foreign_columns[$column] = array('class' => '\\'.get_class($table), 'key' => $key, 'name' => $column);
        }
protected function addForeignKeyColumn($column, Table $table, $key = null)
        {
            $add_table = clone $table;
            $key = ($key !== null) ? $key : $add_table->getIdColumn();
            $foreign_column = $add_table->getColumn($key);
            switch ($foreign_column['type']) {
                case 'integer':
                    $this->addInteger($column, $foreign_column['length'], $foreign_column['default_value'], false, false, $foreign_column['unsigned']);
                    break;
                case 'float':
                    $this->addFloat($column, $foreign_column['precision'], $foreign_column['default_value'], false, false, $foreign_column['unsigned']);
                    break;
                case 'varchar':
                    $this->addVarchar($column, $foreign_column['length'], $foreign_column['default_value'], false);
                    break;
                case 'text':
                case 'boolean':
                case 'blob':
                    throw new Exception('Cannot use a text, blob or boolean column as a foreign key');
            }
            $this->foreign_columns[$column] = array('class' => '\\'.get_class($table), 'key' => $key, 'name' => $column);
        }
protected function addForeignKeyColumn ( $ column , Table $ table , $ key = null ) { $ add_table = clone $ table ; $ key = ( $ key !== null ) ? $ key : $ add_table -> getIdColumn ( ) ; $ foreign_column = $ add_table -> getColumn ( $ key ) ; switch ( $ foreign_column [ 'type' ] ) { case 'integer' : $ this -> addInteger ( $ column , $ foreign_column [ 'length' ] , $ foreign_column [ 'default_value' ] , false , false , $ foreign_column [ 'unsigned' ] ) ; break ; case 'float' : $ this -> addFloat ( $ column , $ foreign_column [ 'precision' ] , $ foreign_column [ 'default_value' ] , false , false , $ foreign_column [ 'unsigned' ] ) ; break ; case 'varchar' : $ this -> addVarchar ( $ column , $ foreign_column [ 'length' ] , $ foreign_column [ 'default_value' ] , false ) ; break ; case 'text' : case 'boolean' : case 'blob' : throw new Exception ( 'Cannot use a text, blob or boolean column as a foreign key' ) ; } $ this -> foreign_columns [ $ column ] = array ( 'class' => '\\' . get_class ( $ table ) , 'key' => $ key , 'name' => $ column ) ; }
Adds a foreign table

@param string $column
@param Table $table
@param string $key
Adds a foreign table