From 253a0b76d8d4bccecc9b6b8fcc566be00ddc0aa3 Mon Sep 17 00:00:00 2001 From: Etienne Roudeix Date: Wed, 28 Aug 2013 15:55:38 +0200 Subject: [PATCH] rewriting tables --- core/lib/Thelia/Model/Base/RewritingUrl.php | 13 ++++++++++++- core/lib/Thelia/Model/Map/RewritingUrlTableMap.php | 6 +++++- install/insert.sql | 2 +- install/thelia.sql | 2 +- local/config/schema.xml | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/core/lib/Thelia/Model/Base/RewritingUrl.php b/core/lib/Thelia/Model/Base/RewritingUrl.php index 2833e80ec..75ee97e79 100644 --- a/core/lib/Thelia/Model/Base/RewritingUrl.php +++ b/core/lib/Thelia/Model/Base/RewritingUrl.php @@ -1017,6 +1017,10 @@ abstract class RewritingUrl implements ActiveRecordInterface $modifiedColumns = array(); $index = 0; + $this->modifiedColumns[] = RewritingUrlTableMap::ID; + if (null !== $this->id) { + throw new PropelException('Cannot insert a value for auto-increment primary key (' . RewritingUrlTableMap::ID . ')'); + } // check the columns in natural order for more readable SQL queries if ($this->isColumnModified(RewritingUrlTableMap::ID)) { @@ -1086,6 +1090,13 @@ abstract class RewritingUrl implements ActiveRecordInterface throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); } + try { + $pk = $con->lastInsertId(); + } catch (Exception $e) { + throw new PropelException('Unable to get autoincrement id.', 0, $e); + } + $this->setId($pk); + $this->setNew(false); } @@ -1383,7 +1394,6 @@ abstract class RewritingUrl implements ActiveRecordInterface */ public function copyInto($copyObj, $deepCopy = false, $makeNew = true) { - $copyObj->setId($this->getId()); $copyObj->setUrl($this->getUrl()); $copyObj->setView($this->getView()); $copyObj->setViewId($this->getViewId()); @@ -1413,6 +1423,7 @@ abstract class RewritingUrl implements ActiveRecordInterface if ($makeNew) { $copyObj->setNew(true); + $copyObj->setId(NULL); // this is a auto-increment column, so set to default value } } diff --git a/core/lib/Thelia/Model/Map/RewritingUrlTableMap.php b/core/lib/Thelia/Model/Map/RewritingUrlTableMap.php index e21a99a9d..c6d5e5473 100644 --- a/core/lib/Thelia/Model/Map/RewritingUrlTableMap.php +++ b/core/lib/Thelia/Model/Map/RewritingUrlTableMap.php @@ -158,7 +158,7 @@ class RewritingUrlTableMap extends TableMap $this->setPhpName('RewritingUrl'); $this->setClassName('\\Thelia\\Model\\RewritingUrl'); $this->setPackage('Thelia.Model'); - $this->setUseIdGenerator(false); + $this->setUseIdGenerator(true); // columns $this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null); $this->addColumn('URL', 'Url', 'VARCHAR', true, 255, null); @@ -454,6 +454,10 @@ class RewritingUrlTableMap extends TableMap $criteria = $criteria->buildCriteria(); // build Criteria from RewritingUrl object } + if ($criteria->containsKey(RewritingUrlTableMap::ID) && $criteria->keyContainsValue(RewritingUrlTableMap::ID) ) { + throw new PropelException('Cannot insert a value for auto-increment primary key ('.RewritingUrlTableMap::ID.')'); + } + // Set the correct dbName $query = RewritingUrlQuery::create()->mergeWith($criteria); diff --git a/install/insert.sql b/install/insert.sql index f5e5d6fdb..cbb6725f3 100755 --- a/install/insert.sql +++ b/install/insert.sql @@ -40,7 +40,7 @@ VALUES (1, 'en_EN', 'euro'), (2, 'fr_FR', 'dollar'), (2, 'en_EN', 'dollar'), -(3, 'fr_FR', 'livre'); +(3, 'fr_FR', 'livre'), (3, 'en_EN', 'pound'); diff --git a/install/thelia.sql b/install/thelia.sql index 308e52b75..1993ee084 100755 --- a/install/thelia.sql +++ b/install/thelia.sql @@ -1441,7 +1441,7 @@ DROP TABLE IF EXISTS `rewriting_url`; CREATE TABLE `rewriting_url` ( - `id` INTEGER NOT NULL, + `id` INTEGER NOT NULL AUTO_INCREMENT, `url` VARCHAR(255) NOT NULL, `view` VARCHAR(255), `view_id` VARCHAR(255), diff --git a/local/config/schema.xml b/local/config/schema.xml index 090280287..0e20f2562 100755 --- a/local/config/schema.xml +++ b/local/config/schema.xml @@ -1094,7 +1094,7 @@ - +