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

構文は、 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を返します。

于 2012-07-16T15:36:35.773 に答える