0

这是我的控制器。

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

这是位于的 cron 函数app/code/local/Desbest/Showdown/Model

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

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

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

4

1 回答 1

1

::仅当您在system.xmlXML中提供源模型时,该语法才有效。

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。

于 2012-07-16T15:36:35.773 回答