我是Magento的新手,目前正在关注this教程。
虽然我无法获得
,但教程似乎非常清晰且有用include(Alan/Storm/Model/Blogpost.php) [function.include]: failed to open stream: No such file or directory
显示错误,我的错误已打开。显然,如果我可以像下一步中的教程那样显示模型名称,这不会有问题,但我遗漏了一些东西,需要对我的代码提供一些指导。
艾伦/风暴的/ 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>
艾伦/风暴/控制器/ 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);
}
}
我尝试将Alan / Storm / Model文件夹留空,但当我访问http://magentotest.local/storm/Index/testModel时,我只是一个空白的屏幕。我还尝试将Blogpost.php添加到Model文件夹中,但这没有帮助。
我做错了什么?
EDIT!
我已经改变了
public function testModelAction() {
$blogpost = Mage::getModel('storm/blogpost');
echo get_class($blogpost);
}
到
public function testModelAction() {
$blogpost = Mage::getModel('storm/blogpost');
echo get_class($blogposts);
}
为什么这样做?在使用get_class函数之前,我没有创建一个名为$ blogposts的变量。值得注意的是,我在数据库中的表名为blogposts,但我不知道如何在脚本中进行此调整。
编辑2
新方法只显示我正在使用的控制器的名称,而不是模型/ blogpost.php,这是我认为我要求的
答案 0 :(得分:2)
根据您提供的代码示例,您的<models/>
标记位于错误的位置。
您已将其直接放在<config/>
节点下。
<!-- this is wrong -->
<config>
<models>
<!-- ... -->
</models>
</config>
它应该在<global/>
节点
<config>
<global>
<models>
<!-- ... -->
</models>
</global>
</config>
您可能已被代码示例绊倒,代码示例仅显示部分片段,而不是整个文档树。请注意顶级节点是<global/>
那些代码示例可能更清晰 - 我当时还在让我的教程在我的下面写作。