2013-06-19 5 views
0

Je suis nouveau à Magento et suis actuellement suivant this tutoriel.comment instancier un modèle dans magento

Le tutoriel semble très clair et utile, bien que je ne peux pas obtenir le

include(Alan/Storm/Model/Blogpost.php) [function.include]: failed to open stream: No such file or directory 

erreur à afficher, mes erreurs sont enclenchées. Évidemment ce ne serait pas un problème si je pouvais afficher le nom du modèle comme les états du tutoriel à l'étape suivante, mais je manque quelque chose et besoin de quelques conseils sur mon code s'il vous plaît.

Alan/Storm/etc/config.xml

<config> 
<modules> 
    <Alan_Storm> 
     <version>0.1.0</version> 
    </Alan_Storm> 
</modules> 

<models>   
    <storm> 
     <class>Alan_Storm_Model</class>    
     <resourceModel>storm_mysql4</resourceModel> 
    </storm> 
</models> 

<frontend> 
    <routers> 
     <storm> 
      <use>standard</use> 
      <args> 
       <module>Alan_Storm</module> 
       <frontName>storm</frontName> 
      </args> 
     </storm> 
    </routers> 
</frontend> 

Alan/Storm/contrôleur/IndexController.php

class Alan_Storm_IndexController extends Mage_Core_Controller_Front_Action 
{ 
public function indexAction() { 
    echo 'This is the Alan Storm Module'; 
} 

public function testModelAction() { 
    $blogpost = Mage::getModel('storm/blogpost'); 
    echo get_class($blogpost); 
} 
} 

J'ai essayé de quitter le Alan/Storm/Modèle dossier vide mais je viens d'avoir un écran vide quand j'ai visité http://magentotest.local/storm/Index/testModel. J'ai également essayé d'ajouter Blogpost.php au dossier Model, mais cela n'a pas aidé.

Qu'est-ce que je fais mal?

EDIT!

J'ai changé

public function testModelAction() { 
    $blogpost = Mage::getModel('storm/blogpost'); 
    echo get_class($blogpost); 
} 

à

public function testModelAction() { 
    $blogpost = Mage::getModel('storm/blogpost'); 
    echo get_class($blogposts); 
} 

Pourquoi ce travail? Je n'ai pas créé de variable appelée $ blogposts avant d'utiliser la fonction get_class. Il est à noter que ma table dans la base de données s'appelle blogposts, mais je ne vois pas comment cela ferait fonctionner cet ajustement dans le script.

EDIT 2

La nouvelle méthode affiche uniquement le nom du contrôleur im travaillant dans, pas le modèle/blogpost.php, qui est ce que je pensais que je demandais

+0

avez-vous créé le fichier modèle?car je ne pense pas qu'il y ait une erreur –

+0

Oui, j'avais essayé mais je n'ai rien obtenu. Je l'ai réparé maintenant, mais cela a généré plus de questions. S'il vous plaît voir modifier – tony09uk

+0

Salut pas en mesure de voir votre édition –

Répondre

2

Sur la base de l'exemple de code vous avez fourni, vous avez votre tag <models/> au mauvais endroit.

Vous l'avez placé directement sous le noeud <config/>.

<!-- this is wrong --> 
<config> 
    <models>  
     <!-- ... --> 
    </models> 
</config> 

Il devrait être sous le nœud <global/>

<config> 
    <global>   
     <models> 
      <!-- ... --> 
     </models> 
    </global> 
</config> 

Vous avez peut-être été déclenché par l'exemple de code, qui ne montre qu'un fragment partiel , et non l'ensemble de l'arborescence des documents. Notez que le nœud de niveau supérieur est <global/>

enter image description here

Ces exemples de code pourraient être plus clairs - je reçois toujours mon tutoriel jambes écrire sous moi à l'époque.

+0

Merci pour votre aide, je l'ai fonctionné maintenant. Aussi super site, merci d'avoir mis les tutoriels là-bas, j'apprends plus de votre site que des livres que j'ai achetés – tony09uk

Questions connexes