KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am developing a custom Magento module that needs to save a list of email addresses into a custom table. The relevant code looks like this: foreach($this->getNewSubscriptionsForAPI() as $email){ $requestModel->setEmail($email); $requestModel->setAction('subscribe'); $requestModel->setPosted(date('Y-m-d H:i:s')); $requestModel->save(); } The getNewSubscriptionsForAPI() method is returning valid data, and the $requestModel is a valid Magento model. When this loop runs, however, the database adaptor simple overwrites each record on top of the previous one. Ie, if I repeatedly hit 'browse' in phpMyAdmin I can see different email addresses being written to the database but always in the same row, overwriting the previous entry. The id field is correctly set up: as primary key, set to AUTO_INCREMENT, and flagged as the id field in the resource model. What's interesting is that I can use the loop above to write successive records in the core newsletter/subscriber table with no problem. I could, of course, simply unset() the model and get it back out of the Mage::getModel() at each cycle of the loop, but this (a) seems hugely wasteful, and (b) spoils my Dependency Injection setup for testing (where I don't want the code to be instantiating its own models, but using the ones I pass to it). Can anyone point me in the right direction?
Tags (comma-separated)
Save Edits
Cancel