Sto sviluppando un modulo Magento personalizzato che deve salvare un elenco di indirizzi e-mail in una tabella personalizzata. Il codice in questione è simile al seguente:
foreach($this->getNewSubscriptionsForAPI() as $email){
$requestModel->setEmail($email);
$requestModel->setAction('subscribe');
$requestModel->setPosted(date('Y-m-d H:i:s'));
$requestModel->save();
}
Il metodo getNewSubscriptionsForAPI()
sta tornando dati validi, e la $requestModel
è un modello Magento valido.
Quando si esegue questo ciclo, tuttavia, l'adattatore di database sovrascrive semplicemente ciascun record in cima al precedente. Cioè, se premo ripetutamente 'browse' in phpMyAdmin, posso vedere diversi indirizzi email scritti nel database ma sempre nella stessa riga, sovrascrivendo la voce precedente. Il campo id è impostato correttamente: come chiave primaria, impostato su AUTO_INCREMENT e contrassegnato come campo id nel modello risorsa.
Ciò che è interessante è che posso usare il ciclo sopra per scrivere i record successivi nella tabella centrale newsletter/subscriber
senza problemi.
ho potuto, ovviamente, semplicemente unset()
il modello e farlo di nuovo fuori dalla Mage::getModel()
ad ogni ciclo del ciclo, ma questo (a) sembra estremamente dispendiosa, e (b) Spoils mio setup Dependency Injection per la prova (dove non voglio che il codice instanzia i propri modelli, ma usando quelli che passo ad esso).
Qualcuno può indicarmi la giusta direzione?
Perché è stato downvoted ?! – MJA