对未定义函数的调用:Laravel 5.1


Call to undefined function : Laravel 5.1

我在控制器中有一个私有函数,如下所述

private function GetProjects($ProjectStatus) {
    return 'App'Models'Project'Project_Model
            ::where('ProjectStatusID', $ProjectStatus)
            ->where('WhoCreatedTheProject', auth()->user()->UserID)->get();
}

下面是使用此私有函数的操作方法

public function ClientCancelledProjects() {
    $ProjectStatus = 'App'Enumeration'Project'ProjectStatus::Cancelled;         
    $MyProjects = GetProjects($ProjectStatus);
    return view("Project.Client.MyProject", array("Projects" => $MyProjects));
}

以下是运行控制器时出现的错误

调用未定义的函数App''Http''Controllers''Project''GetProjects()

有人知道为什么会发生这种事吗?我正在尝试重用一些代码行,因为它们在Controller中被多次写入。

要从同一控制器中的一个函数访问控制器中的函数,请使用self:::

public function ClientCancelledProjects() {
    $ProjectStatus = 'App'Enumeration'Project'ProjectStatus::Cancelled;         
    $MyProjects = self::GetProjects($ProjectStatus);
    return view("Project.Client.MyProject", array("Projects" => $MyProjects));
}

注意:Self::(大写)将根据安装的php的版本工作,但对于较旧的版本,self::是首选。

请查看此链接了解更多信息:PHP-Self vs$this

类内部的函数不是全局函数,不能以这种方式调用。您需要使用$this->GetProjects()