Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make doctrine load auto_increment value after save

Tags:

php

doctrine

I'm using Doctrine for database abstraction. Now I'd like to get the auto_increment primary key from the freshly-created (and save()'d) object - but $obj->toArray() shows me that the field is empty after calling save().

Is there a flag that I'm not aware of that does this? Or do I really have to query the object from the database?

like image 533
Dave Vogt Avatar asked Apr 09 '26 15:04

Dave Vogt


1 Answers

Ensure that you have the autoincrement flag set when setting up your object in the setTableDefinition() method (or related YAML config file). If this flag isn't set, then Doctrine won't know to update it. You should have something that looks like this:

 $this->hasColumn('id', 'integer', 4, array(
                  'type' => 'integer',
                  'length' => 4,
                  'fixed' => false,
                  'unsigned' => true,
                  'primary' => true,
                  'autoincrement' => true //this flag right here
             )
 );
like image 149
Wickethewok Avatar answered Apr 11 '26 04:04

Wickethewok



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!