簡體   English   中英

如何在Laravel中從route.php調用靜態函數

[英]How to call static function from routes.php in Laravel

我試圖從已經編寫的控制器中調用靜態函數,而我只想重用該函數。

控制器:

public static function getProjectName($project_id){
     $project_obj = new Project();
     $project = $project_obj->find($project_id); 
     return $project->project_name;
}

如果我在相同或另一個控制器中調用此靜態函數,則此代碼可以正常工作。 但是我試圖從routes.php調用它,如下所示:

routes.php

Route::get('/get-project-name/{project_id}', 'ProjectController@getProjectName');

我在routes.php中使用上述代碼調用了相同的函數,但是每次遇到405錯誤,這是不允許的方法。
如何從Laravel中的路由調用此靜態函數

使用控制器方法獲取數據庫值不是一個好主意。

而是使用其模型並在需要時隨時調用model方法。

class Project extends Model 
{
    public function getProjectName($id)
    {
        $project = $this->find($id);
        return $project ? $project->name : null;
    } 

}

如果您需要靜態調用它

class Project extends Model 
{
    public static function getProjectName($id)
    {
        $project = self::find($id);
        return $project ? $project->name : null;
    } 

}

如果您需要在路線中使用它

Route::get('/get-project-name/{id}', function ($id) {
    return Project::getProjectName($id);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM