Question

J'ai quelques problèmes lorsque vous essayez faire un plug-in.

Ceci est mon code:

** Mibloque.php

class Uniagro_Tpv_Block_Mibloque extends Mage_Core_Block_Template
{
    public function methodblock()
    {
        //return "informations about my block !!" ;
        //on initialize la variable
        $retour='';
        /* we are doing the query to select all elements of the pfay_test table (thanks to our model test/test and we sort them by id_pfay_test */
     $collection = Mage::getModel('tpv/tpv')->getCollection()->setOrder('id','asc');
         /* then, we check the result of the query and with the function getData() */
        foreach($collection as $data)
        {
             $retour .= $data->getData('banco').' '.$data->getData('codigotienda')
                     .' '.$data->getData('url').'<br />';
         }
         //i return a success message to the user thanks to the Session.
         Mage::getSingleton('adminhtml/session')->addSuccess('Cool Ca marche !!');
         return $retour;      
    }
}

** config.xml

<?xml version="1.0"?>
  <config>
     <modules>
        <Uniagro_Tpv>
          <version>1.0.0</version>
        </Uniagro_Tpv>
     </modules>
     <frontend>
       <routers>
          <routeurfrontend>
              <use>standard</use>
              <args>
                 <module>Uniagro_Tpv</module>
                 <frontName>pasarela</frontName> <!-- sirve a modo de ruta del modulo [...]/index y va al modulo -->
              </args>
           </routeurfrontend>
       </routers>
       <layout>
            <updates>
                <tpv>
                    <file>uniagropasarela.xml</file>
                </tpv>
            </updates>
        </layout>
    </frontend>
    <global>
        <blocks>
            <tpv>
                 <class>Uniagro_Tpv_Block</class>
            </tpv>
        </blocks>
        <models>
            <tpv>
                <class>Uniagro_Tpv_Model</class>
                <resourceModel>tpv_mysql4</resourceModel>
            </tpv>
            <tpv_mysql4>
                <class>Uniagro_Tpv_Model_Mysql4</class>
                <entities>
                    <tpv>
                        <table>uniagro_datosPasarela</table>
                    </tpv>
                </entities>
            </tpv_mysql4>
        </models>
        <resources>
            <!-- connection to write -->
            <tpv_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </tpv_write>
            <!-- connection to read -->
            <tpv_read>
              <connection>
                 <use>core_read</use>
              </connection>
            </tpv_read>
        </resources>
    </global>
</config>

modèle ** / Tpv.php

class Uniagro_Tpv_Model_Tpv extends Mage_Core_Model_Abstract
{
     public function _construct()
     {
         parent::_construct();
         $this->_init('tpv/tpv');
     }
}

modèle ** / mysql4 / Tpv.php

class Uniagro_Tpv_Mysql4_Tpv extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct()
    {
        $this->_init('tpv/tpv', 'id');
    }
}

Je suis essayer des solutions (par exemple ce [ erreur fatale: Appel à une fonction membre getCollection () sur un non-objet dans magento

[1]: erreur fatale: Appel à une fonction de membre getCollection () sur un non-objet dans magento ), mais toujours envoyer mon même erreur « erreur fatale: Appel à une fonction de membre setOrder () »

Et je revoir mon bd et ont la colonne à l'ordre ( 'id')

Était-ce utile?

La solution

Ajouter classe de collection modèle et essayer

class Uniagro_Tpv_Mysql4_Tpv_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract{
    public function _construct(){
        $this->_init('tpv/tpv');
    }
}

Modifier (à la suite des commentaires) :

Le problème a été le mauvais nom / placé Uniagro_Tpv_Mysql4_Tpv de classe qui appartient dans la zone de Model il doit être Uniagro_Tpv_Model_Mysql4_Tpv

Autres conseils

Cela devrait fonctionner.

$collection = Mage::getModel('tpv/tpv')->getCollection();
$collection->getSelect()->order('main_table.id ASC');
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top