Commit 1d5bdee6 authored by pookey's avatar pookey

rolling back r587, reopening #146 - this breaks creating new objects.

parent d4668307
...@@ -126,13 +126,14 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite ...@@ -126,13 +126,14 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
* open connections * open connections
* @throws Doctrine_Record_Exception if the cleanData operation fails somehow * @throws Doctrine_Record_Exception if the cleanData operation fails somehow
*/ */
public function __construct($table = null, $isNewEntry = false) { public function __construct($table = null) {
if(isset($table) && $table instanceof Doctrine_Table) { if(isset($table) && $table instanceof Doctrine_Table) {
$this->_table = $table; $this->_table = $table;
$exists = ( ! $this->_table->isNewEntry());
} else { } else {
$this->_table = Doctrine_Manager::getInstance()->getCurrentConnection()->getTable(get_class($this)); $this->_table = Doctrine_Manager::getInstance()->getCurrentConnection()->getTable(get_class($this));
$exists = false;
} }
$exists = !$isNewEntry;
// Check if the current connection has the records table in its registry // Check if the current connection has the records table in its registry
// If not this record is only used for creating table definition and setting up // If not this record is only used for creating table definition and setting up
......
...@@ -31,6 +31,10 @@ ...@@ -31,6 +31,10 @@
* @version 1.0 alpha * @version 1.0 alpha
*/ */
class Doctrine_Table extends Doctrine_Configurable implements Countable { class Doctrine_Table extends Doctrine_Configurable implements Countable {
/**
* @var boolean $isNewEntry whether ot not this table created a new record or not, used only internally
*/
private $isNewEntry = false;
/** /**
* @var array $data temporary data which is then loaded into Doctrine_Record::$data * @var array $data temporary data which is then loaded into Doctrine_Record::$data
*/ */
...@@ -757,7 +761,9 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable { ...@@ -757,7 +761,9 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable {
*/ */
public function create(array $array = array()) { public function create(array $array = array()) {
$this->data = $array; $this->data = $array;
$record = new $this->options['name']($this, true); $this->isNewEntry = true;
$record = new $this->options['name']($this);
$this->isNewEntry = false;
$this->data = array(); $this->data = array();
return $record; return $record;
} }
...@@ -1102,6 +1108,14 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable { ...@@ -1102,6 +1108,14 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable {
$data = $stmt->fetch(PDO::FETCH_NUM); $data = $stmt->fetch(PDO::FETCH_NUM);
return isset($data[0])?$data[0]:1; return isset($data[0])?$data[0]:1;
} }
/**
* return whether or not a newly created object is new or not
*
* @return boolean
*/
final public function isNewEntry() {
return $this->isNewEntry;
}
/** /**
* returns simple cached query * returns simple cached query
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment