Domanda

Sto riscontrando un problema perché sono sicuro che non lo sto facendo correttamente con la mia programmazione.
Ho creato un modello personalizzato in Magento.
Nella tabella del database del mio modello ci sono diverse entità con gli stessi attributi ...
Devo sceglierne solo una da tutte queste entità con lo stesso attributo che ho.
Per il momento l'ho fatto:

$myvariable = Mage::getModel('test/test')->getCollection()
->setOrder('idserialkeys', 'asc')
->addFilter('idproduit', 1)
->addFilter('utilise', 0)
->addFilter('customerid', 0)
->addFilter('numcommande', 0)

Da questo caricamento ho circa un centinaio di risultati, ma devo aggiornare solo uno di questi, quindi subito dopo:

->setPageSize(1);

Il problema è che ho bisogno di un foreach Dopo aver aggiornato la mia entità

foreach($mavaribale as $modifiemoi) {
    // Update of my entity because of course there is only one 
}

Come puoi vedere sono obbligato a fare un ciclo (per ciascuno) anche se ho un setPagesize... Vorrei evitare questo stupido ciclo per ottimizzare il mio codice.

Grazie per i tuoi suggerimenti e buona giornata,

Anselme

È stato utile?

Soluzione

Quando hai una collezione e hai bisogno di un solo elemento, usa il getFirstItem metodo. Prova questo:

$modifiemoi = $myvariable->getFirstItem();

Assicurati di usare anche il tuo setPageSize Chiama in modo da trasferire i dati solo per un elemento.

Spero possa aiutare!

Grazie, Joe

Altri suggerimenti

Tutte le collezioni sono Varien_Data_Collection oggetti in modo da poter usare getFirstItem:

$modifiemoi = $mavaribale->getFirstItem();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top