Zend Framework 2, Inputfilters and Capitalised Database Columns

This note may be of use to someone, it had me pulling my hair out for a while.
Having successfully completed the Zend Framework 2 Album Tutorial it seemed appropriate to convert a Zend Framework 1 project to ZF2. Although this pretty much meant rewriting it as ZF2 is significantly different.
Hit an issue when trying to update or add records in the database, eventually narrowed this down to using the input filters and isValid function. After the isValid had run to validated form against the input filters the DBobj fields were null.
 

// Create form and bind 
$form = new EditForm(); $form->bind($mydbObj); $form->get('submit')->setAttribute('value', 'Update');
$request = $this->getRequest();  // Using print_r can see data in request if ($request->isPost()) { $form->setInputFilter($envRow->getInputFilter()); $form->setData($request->getPost());
// Using print_r the db obj is still populated
if ($form->isValid()) {
// Using print_r the db obj now has all fields as null
$this->getDbObjTable()->saveRow($form->getData());

After much head scratching it came down to my source table originally being an Oracle table before being moved to MySQL. Therefore the column names followed the Oracle standard of being in upper case.
This meant I had an exchange table in my DB Table class of

public function exchangeArray($data) {   $this->id = (isset($data['ID'])) ? $data['ID'] : null;    $this->name = (isset($data['NAME'])) ? $data['NAME'] : null;   $this->url = (isset($data['URL'])) ? $data['URL'] : null; }

This meant they didn't match my input filters, which were lowercase to match the php variables. In the end I went for the path of least resistance and renamed the MySQL table columns to lowercase. Everything then burst into life.
Links I found helpful
http://zend-framework-community.634137.n4.nabble.com/ZF2-exchangeArray-and-db-fields-prefix-td4657802.html
https://blogs.oracle.com/opal/entry/getting_started_with_php_zend