ホームページ  >  記事  >  PHPフレームワーク  >  laravel5のコントローラー取得メソッド

laravel5のコントローラー取得メソッド

WBOY
WBOYオリジナル
2023-05-26 19:18:371017ブラウズ

Laravel 5 では、コントローラーメソッドの取得は非常に基本的で一般的に使用される操作です。シナリオによっては、現在のコントローラーによって実行されるメソッドの名前を取得する必要がある場合があります。では、Laravel 5 でコントローラーメソッドを取得するにはどうすればよいでしょうか?次に、一緒に調べてみましょう。

1. $route オブジェクト

Laravel 5 では、$route オブジェクトは現在実行中のコントローラーのルーティング情報を保存します。このオブジェクトには、リクエストされた URI、リクエスト メソッド、ルーティング パラメータなどが含まれます。現在のコントローラーのメソッド名を取得したい場合は、$route オブジェクトの「getActionName」メソッドを通じて取得できます。

/**
获取当前控制器方法名称
**/
public function getCurrentMethodName() {
    $route = Route::getCurrentRoute();
    $action = $route->getActionName();
    $fragments = explode('@', $action);
    $method = end($fragments);
    return $method;
}

上記のコードでは、まず Route::getCurrentRoute() メソッドを通じて現在のルーティング オブジェクトを取得し、次に $route オブジェクトの "getActionName" メソッドを使用して現在のルーティング オブジェクトのフル パスを取得します。コントローラー メソッド (「AppHttpControllersTestController@index」など)。次に、explode() 関数を使用してメソッド名の部分をインターセプトし、end() 関数を使用して配列の最後の要素 (コントローラーのメソッド名) を取得します。最後に、メソッド名を返すだけです。

2. リフレクション

$route オブジェクトの使用に加えて、PHP リフレクション メカニズムを通じてコン​​トローラー メソッドを取得することもできます。 PHP リフレクション メカニズムはクラス ReflectionClass を提供します。これを使用して、メソッド、プロパティ、定数などのクラス関連情報を取得できます。 ReflectionClass を通じて、現在のコントローラーのメソッド名を取得できます。

/**
获取当前控制器方法名称
**/
public function getCurrentMethodName() {
    $controller = Route::current()->getController();
    $reflection = new ReflectionClass($controller);
    $method = $reflection->getMethod(Route::currentRouteAction());
    return $method->name;
}

上記のコードでは、まず現在のコントローラーのインスタンス オブジェクトを取得し、次に ReflectionClass クラスを使用してインスタンス オブジェクトのリフレクション情報を取得します。次に、リフレクション インスタンスの getMethod() メソッドを通じて、現在実行されているメソッドを取得します。最後に、リフレクション メソッドの name 属性を使用してメソッド名を取得し、それを返します。

まとめ

Laravel 5でコントローラーメソッドを取得する方法は上記の2つです。どの方法を使用する場合でも、非常に高速で便利な操作方法が提供され、コントローラーの実行をより適切に制御できるようになります。 Laravel 5 開発について質問がある場合、または Laravel 5 についてさらに詳しく知りたい場合は、公式ドキュメントまたはチュートリアルを確認してください。 Laravel 5 の開発機能をマスターすると、Web 開発の分野ですぐに優位性を得ることができます。

以上がlaravel5のコントローラー取得メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。