我在控制器中有一个私有函数,如下所述
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()
。