缺少参数1 for page :: sponsor()

时间:2015-11-29 14:49:12

标签: php oop silverstripe

我有这个非常令人沮丧的错误。我从另一个函数调用赞助商函数并传递一个参数。然而,赞助商功能不断给出缺失的参数错误。

这是我的代码:

// get random sale
public function RandomSale() {
    static $sale = null;
    if(!isset($sale)){
        $sale = Sale::get()->filter(array('Title:not' => null))->sort("RAND()")->Limit('1');
        $this->sponsor(8);
    }
    return $sale;
}

public function sponsor($memberid) {
    $sponsor = Sponsor::get()->filter(array('MemberID' => $memberid))->Limit('1');
    return $sponsor;
}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

尝试将sponsor()功能命名为更具体的内容,例如SponsorByID($memberID)。您的Sponsor DataObject与sponsor()函数之间可能存在命名冲突。

答案 1 :(得分:0)

数字8甚至不太可能传递给方法赞助商()。尝试输入$this->sponsor('8')以查看是否仍然出现错误。如果没有,那么快乐的日子。

P.S。正如elliot_at_silverstripe所说,尝试清理你的代码以遵循SilverStripe编码约定。你可能会在以后感谢自己。 :) https://docs.silverstripe.org/en/3.2/getting_started/coding_conventions/