Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 缺少页::赞助商()的参数1_Php_Oop_Silverstripe - Fatal编程技术网

Php 缺少页::赞助商()的参数1

Php 缺少页::赞助商()的参数1,php,oop,silverstripe,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()")-

我犯了一个非常令人沮丧的错误。我从另一个函数调用发起函数并传递一个参数。但是,发起函数不断给出缺少的参数错误

这是我的密码:

// 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;
}

如何解决此问题?

尝试将您的
赞助商()函数命名为更具体的函数,如
SponsorByID($memberID)
。您的赞助商数据对象和
赞助商()
函数之间可能存在命名冲突

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

另外,正如elliot_在_silverstripe所说的,尝试清理代码以遵循silverstripe编码惯例。。以后你可以感谢你自己。:)

您确定这是唯一一个调用
赞助商()
函数的地方吗?是的,这是唯一一个地方。您能粘贴整个错误消息吗,可能带有跟踪?尝试转到开发模式,然后您将看到一个tracelog,以及从中调用发起人方法的…[警告]第363行的FRAMEWORK/VIEW/VIEWABLEDATA.PHP中调用的PAGE::shandor()缺少参数1,如果删除该行
$this->shandor(8)
RandomSale
函数中,错误是否消失?