我正在使用Doctrine進行數據庫抽象。現在我想從新創建的(和save()
'd)對象獲得auto_increment
主鍵 - 但$obj->toArray()
告訴我,在調用save()
之後該字段爲空。保存後使原則加載auto_increment值
有沒有一個標誌,我不知道這是否?或者我真的不得不從數據庫中查詢對象?
我正在使用Doctrine進行數據庫抽象。現在我想從新創建的(和save()
'd)對象獲得auto_increment
主鍵 - 但$obj->toArray()
告訴我,在調用save()
之後該字段爲空。保存後使原則加載auto_increment值
有沒有一個標誌,我不知道這是否?或者我真的不得不從數據庫中查詢對象?
確保在setTableDefinition()
方法(或相關的YAML配置文件)中設置對象時設置了自動增量標誌。如果這個標誌沒有設置,那麼Doctrine不會知道更新它。你應該看起來像這樣:
$this->hasColumn('id', 'integer', 4, array(
'type' => 'integer',
'length' => 4,
'fixed' => false,
'unsigned' => true,
'primary' => true,
'autoincrement' => true //this flag right here
)
);
在toArray
之前的記錄實例上調用refresh
。
這是一個2.x或1.2的功能?因爲我在1.1版本,並且不會顯示主鍵字段。 (但刷新()方法在那裏..) –
也許它只有1.2 - 我認爲它是1.x雖然。 – prodigitalson
是啊!我不小心寫了auto_increment ..我認爲教條應該警告如果一個參數是無效的:(但謝謝! –