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
* open connections
* @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) {
$this->_table = $table;
$exists = ( ! $this->_table->isNewEntry());
} else {
$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
// If not this record is only used for creating table definition and setting up
......
......@@ -31,6 +31,10 @@
* @version 1.0 alpha
*/
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
*/
......@@ -757,7 +761,9 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable {
*/
public function create(array $array = 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();
return $record;
}
......@@ -1102,6 +1108,14 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable {
$data = $stmt->fetch(PDO::FETCH_NUM);
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
*
......
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