基本上,每次控制器方法运行时我都会调用一个事件:
public function destroy(User $user) { event(new AdminActivity('admin.users.destroy',class_basename(Route::current()->controller),'destroy','DELETE')); ... }
事实上它正在保存这些信息:
event(new AdminActivity(ROUTE_NAME,CONTROLLER_NAME,CONTROLLER_METHOD_NAME,CONTROLLER_METHOD_TYPE));
现在我想自动传递所需的参数,而不是手动传递参数。
所以我需要获取路由名称、控制器方法名称和控制器方法类型 auto(就像 class_basename(Route::current ()->controller)
返回控制器名称)。
那么我该怎么做呢?
您可以将
Route::current()
传递给事件,然后从\Illuminate\Routing\Route
对象中获取您需要的信息然后,在您的
AdminActivity
事件类中注意:
$route->methods()
的返回类型是一个数组,包含所有有效的请求方法(GET、HEAD、POST...)