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()を呼び出します
なぜこれが起こっているのか誰かが知っていますか?コントローラーで何度も記述されているため、コードのいくつかの行を再利用しようとしています。
同じコントローラー内の関数からコントローラー内の関数にアクセスするには、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()
を使用する必要があります。