Sto lavorando a un modulo di back-end che salva su una tabella personalizzata. Il mio problema è che ho aggiunto campi a questa tabella mentre ci sto lavorando, i campi appena aggiunti non salveranno con la funzione model -> Save().Il modello Magento non salverà i valori
Ho rimosso completamente il modulo e lo ho reinstallato, permettendogli di creare il mio tavolo personalizzato da zero nel caso in cui avesse un numero di campi interno di cui non ero a conoscenza, ma sempre lo stesso risultato.
Dopo l'aggiunta dei miei dati ho fare una discarica var su ciò che viene presentato in questo modo:
$model = Mage::getModel("smsmanager/sms")->addData($post_data)->save();
var_dump($model->getData()); exit;
Con il risultato
array
'form_key' => string 'RUGN3fruWobAf8CZ' (length=16)
'message' => string 'adg asdg sad' (length=14)
'country' => string 'SE' (length=2)
'telephone' => string '+46707332290' (length=12)
'type' => int 2
'id' => string '5' (length=1)
e tutto sembra più che bene. Quando controllo la riga appena creata con ID 5, ottengo questo:
|-----------------------------------------------------------------------------------------------------------|
|id int(11)| type int(11) | telephone varchar(20) | country varchar(2) | message text | date timestamp |
|-----------------------------------------------------------------------------------------------------------|
| 5 | 2 | +46707332290 | NULL | adg asdg sad | 2013-03-19 21:44:51 |
|-----------------------------------------------------------------------------------------------------------|
Ho anche provato a inserire manualmente gli altri campi nella tabella di database come "junkfield" e aggiungerlo con $post_data['junkfield'] = "hello";
e diventa anche nullo come valore.
Per me, sembra che Magento mi stia prendendo in giro. Logica sfidante. Qualcuno ha preso un'altra opinione su cosa potrebbe essere sbagliato? Oh, e prima che dimentichi, ecco il mio schema:
CREATE TABLE IF NOT EXISTS `sms_entry` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` int(11) NOT NULL,
`telephone` varchar(20) DEFAULT NULL,
`country` varchar(2) DEFAULT NULL,
`message` text,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Non importa quello che provo, semplicemente non salverà il codice del paese. Ho anche provato a fare il varchar più grande di 2, cambiando il nome in country_code
(nel caso in cui il paese fosse riservato o qualcosa del genere). Niente sembra aiutare.
Hmm, questo spiegherebbe molto. Ho passato 2 ore con questo e stavo iniziando a pensare che stavo perdendo la testa. : P –
+1 per chiarire –
wow grazie! ora capisco perché Magento memorizza nella cache i miei errori che ho risolto – nakajuice