検索

ホームページ  >  に質問  >  本文

Laravelコントローラーのメソッド名とメソッドタイプを自動取得する方法

基本的に、コントローラー メソッドが実行されるたびにイベントを呼び出します。

リーリー

実際には、次の情報が保存されています:

リーリー

ここで、必要なパラメータを手動で渡すのではなく、自動的に渡したいと考えています。

したがって、 ルート名 コントローラー メソッド名 、および コントローラー メソッド タイプ auto ( class_basename(Route::current () のように) を取得する必要があります。 ->controller) コントローラー名を返します)。

それで、どうすればいいでしょうか?

P粉573809727P粉573809727261日前422

全員に返信(1)返信します

  • P粉616383625

    P粉6163836252024-02-27 09:22:02

    イベントに Route::current() を渡して、\Illuminate\Routing\Route オブジェクトから必要な情報を取得できます。

    パブリック関数 destroy(ユーザー $user) { イベント(新しいAdminActivity(\Illuminate\Support\Facades\Route::current())); ... }
    次に、

    AdminActivity イベント クラス

    クラスAdminActivity { パブリック関数 __construct(\Illuminate\Routing\Route $route) { $controllerClass = class_basename($route->getController()); $controllerMethod = $route->getActionMethod(); $routeName = $route->getAction('as'); $methods = $route->methods(); } }

    : $route->methods() の戻り値の型は、すべての有効なリクエスト メソッド (GET、HEAD、POST...) を含む配列です。

    返事
    0
  • キャンセル返事