如何在Magento控制器内运行模型?

时间:2012-07-16 15:26:39

标签: magento

这是我的控制器。

public function mockcron_newmatchAction(){
    $task = Mage::getModel('showdown/cron::makematch');
    var_dump($task);
}

这是位于app/code/local/Desbest/Showdown/Model

的cron函数
<?php
class Desbest_Showdown_Model_Cron
{
    public function makematch(){
        $var = "apples";
        return $var;
    }
}

问题是$task = Mage::getModel('showdown/cron::makematch');没有运行,我希望该模型运行。我该怎么办?

无论我是否选择了现有模型,变量都会打印为false

1 个答案:

答案 0 :(得分:1)

只有在:: XML中提供源模型时,system.xml语法才有效。

ex. 
#File: app/code/core/Mage/Paypal/etc/system.xml
<source_model>paypal/config::getApiAuthenticationMethods</source_model>

当您编写常规PHP代码时,它不起作用。你想要的语法是

$task = Mage::getModel('showdown/cron')->makematch();

Mage::getModel('showdown/cron')的调用实例化您的模型对象,然后->makematch();调用方法,按照标准PHP。当你说

Mage::getModel('showdown/cron::makematch');

您要求magento使用别名showdown/cron::makematch来实例化该类。由于这是一个无效的别名别名,因此总是返回false。