2010-01-03 27 views
3

我正在使用Doctrine進行數據庫抽象。現在我想從新創建的(和save()'d)對象獲得auto_increment主鍵 - 但$obj->toArray()告訴我,在調用save()之後該字段爲空。保存後使原則加載auto_increment值

有沒有一個標誌,我不知道這是否?或者我真的不得不從數據庫中查詢對象?

回答

3

確保在setTableDefinition()方法(或相關的YAML配置文件)中設置對象時設置了自動增量標誌。如果這個標誌沒有設置,那麼Doc​​trine不會知道更新它。你應該看起來像這樣:

$this->hasColumn('id', 'integer', 4, array(
        'type' => 'integer', 
        'length' => 4, 
        'fixed' => false, 
        'unsigned' => true, 
        'primary' => true, 
        'autoincrement' => true //this flag right here 
      ) 
); 
+0

是啊!我不小心寫了auto_increment ..我認爲教條應該警告如果一個參數是無效的:(但謝謝! –

0

toArray之前的記錄實例上調用refresh

+0

這是一個2.x或1.2的功能?因爲我在1.1版本,並且不會顯示主鍵字段。 (但刷新()方法在那裏..) –

+0

也許它只有1.2 - 我認爲它是1.x雖然。 – prodigitalson