Doktrin yük auto_increment değeri sonra tasarruf yapmak

2 Cevap php

Ben veritabanı soyutlama için Doctrine kullanıyorum. Şimdi taze oluşturulan (ve save() 'd) nesneden auto_increment birincil anahtarı almak istiyorum - ama $obj->toArray() Bana bir alan olduğunu gösteriyor çağırdıktan sonra boş save().

Ben bunu yapar farkında değilim bir bayrak var mı? Yoksa gerçekten veritabanından nesne sorgulamak gerekiyor?

2 Cevap

setTableDefinition() yöntemi (veya ilişkili YAML config dosyasında) daki nesneyi kurarken değiştirmemesi bayrağı ayarlanmış olduğundan emin olun. Bu bayrağı ayarlanmazsa, sonra Doktrin güncellemek için bilemezsiniz. Böyle bir şey olmalıdır:

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

Çağrı refresh kayıt örneğinde önce toArray.