fix mysql error #1452 for foreign key
This commit is contained in:
@@ -90,15 +90,23 @@ class Orm
|
||||
|
||||
switch ($fieldParams['type']) {
|
||||
case 'id':
|
||||
case 'foreignId':
|
||||
$fieldParams = array_merge($fieldParams, $this->idParams);
|
||||
break;
|
||||
break;
|
||||
|
||||
case 'foreignId':
|
||||
$fieldParams = array_merge($fieldParams, $this->idParams);
|
||||
$fieldParams['notnull'] = false;
|
||||
break;
|
||||
|
||||
case 'foreignType':
|
||||
$fieldParams['dbType'] = Entity::VARCHAR;
|
||||
$fieldParams['len'] = $this->defaultLength['varchar'];
|
||||
break;
|
||||
|
||||
case 'datetime':
|
||||
$fieldParams['notnull'] = false;
|
||||
break;
|
||||
|
||||
case 'bool':
|
||||
$fieldParams['default'] = isset($fieldParams['default']) ? (bool) $fieldParams['default'] : $this->defaultValue['bool'];
|
||||
break;
|
||||
|
||||
@@ -16,6 +16,7 @@ class Schema
|
||||
protected $allowedDbFieldParams = array(
|
||||
'len' => 'length',
|
||||
'default' => 'default',
|
||||
'notnull' => 'notnull',
|
||||
);
|
||||
|
||||
|
||||
@@ -99,7 +100,7 @@ class Schema
|
||||
$tables[$tableName]->addColumn($usMidKey, $this->idParams['dbType'], array('length'=>$this->idParams['len']));
|
||||
|
||||
$relationKey = Util::toUnderScore($relationKeys[$index]);
|
||||
$tables[$tableName]->addForeignKeyConstraint($tables[$relationEntities[$index]], array($usMidKey), array($relationKey));
|
||||
$tables[$tableName]->addForeignKeyConstraint($tables[$relationEntities[$index]], array($usMidKey), array($relationKey), array("onUpdate" => "CASCADE"));
|
||||
}
|
||||
|
||||
$tables[$tableName]->addColumn('deleted', 'bool', array('default' => 0));
|
||||
@@ -110,7 +111,7 @@ class Schema
|
||||
$foreignEntity = $relationParams['entity'];
|
||||
$columnName = Util::toUnderScore($relationParams['key']);
|
||||
$foreignKey = Util::toUnderScore($relationParams['foreignKey']);
|
||||
$tables[$entityName]->addForeignKeyConstraint($tables[$foreignEntity], array($columnName), array($foreignKey));
|
||||
$tables[$entityName]->addForeignKeyConstraint($tables[$foreignEntity], array($columnName), array($foreignKey), array("onUpdate" => "CASCADE"));
|
||||
break;
|
||||
}
|
||||
//$myForeign->addForeignKeyConstraint($myTable, array("user_id"), array("id"), array("onUpdate" => "CASCADE"));
|
||||
|
||||
Reference in New Issue
Block a user