[英]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.