Laravelコントローラーのメソッド名とメソッドタイプを自動取得する方法
P粉573809727
P粉573809727 2024-02-26 13:54:16
0
1
568

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

リーリー

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

リーリー

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

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

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

P粉573809727
P粉573809727

全員に返信(1)
P粉616383625

イベントに 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
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート