我有这个非常令人沮丧的错误。我从另一个函数调用赞助商函数并传递一个参数。然而,赞助商功能不断给出缺失的参数错误。
这是我的代码:
// 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;
}
我该如何解决这个问题?
答案 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/