2017-09-23 18 views
0

既に書かれているコントローラから静的関数を呼び出そうとしていますが、その関数を再利用したいだけです。

コントローラ:私は、同じまたは別のコントローラでは、この静的関数を呼び出す場合Laravelのroutes.phpから静的関数を呼び出す方法

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}', '[email protected]'); 



routes.phpの方法が許されない405エラーを得る。
Laravelのルートからこの静的関数を呼び出す方法

答えて

1

データベースメソッドを使用してデータベース値を取得することはお勧めできません。

代わりに、そのモデルを使用し、必要に応じていつでもモデルメソッドを呼び出します。

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

} 

そして、あなたは、あなたがルート

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

@Onkarなぜあなたはルートでそれを呼びたいんでそれを使用する必要がある場合、静的

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

それを呼び出す必要がある場合は? –

+0

コードを減らすには –

+0

@Onkar私の答えを更新しました。 –

関連する問題