views:

195

answers:

2

Hi,

I want to disable the automatic behaviour of changing the 'updated_at' field when an object is updated. I want to do it manually; or at least, have the posibility to disable it as wanted.

I know I can do this by building my own behaviour as in this great answer. But I was searching for something 'cleaner' modifying a listener of the object.

  • I've tried to override the preUpdate() action on the model.
  • I've tried to disable the listeners, and nothing:

--

Doctrine::getTable('Place')->getRecordListener()->setOption('disabled', true);
// or
Doctrine::getTable('Place')->getRecordListener()->setOption('disabled', array('preUpdate'));
// As reference, I've used these two lines on a Symfony Task

Any more ideas, or code to look at?

thanks!

A: 

The most simple way to do this would be to rename the updated_at field to something else. So that it is ignored by Doctrine.

That way, you can control the contents of the field exactly.

Jon Winstanley
+2  A: 

according to the docs at http://www.doctrine-project.org/documentation/manual/1_1/nl/behaviors:core-behaviors#timestampable if you want to use Timestampable but not the updated portion of it just use:

Timestampable:
  updated:
    disabled: true

And add in your own updated_at field in the columns section.

Joshua Coady
i like it, and I don't even have to do any migration :-)
fesja