Grundsätzlich rufe ich jedes Mal, wenn eine Controller-Methode ausgeführt wird, ein Ereignis auf:
public function destroy(User $user) { event(new AdminActivity('admin.users.destroy',class_basename(Route::current()->controller),'destroy','DELETE')); ... }
Tatsächlich werden diese Informationen gespeichert:
event(new AdminActivity(ROUTE_NAME,CONTROLLER_NAME,CONTROLLER_METHOD_NAME,CONTROLLER_METHOD_TYPE));
Jetzt möchte ich die erforderlichen Parameter automatisch übergeben, anstatt sie manuell zu übergeben.
Also muss ich den Routennamen, den Controller-Methodennamen und den Controller-Methodentyp automatisch abrufen (genau wie class_basename(Route::current ()->controller)
den Controller-Namen zurückgibt).
Was soll ich also tun?
您可以将
Route::current()
传递给事件,然后从\Illuminate\Routing\Route
对象中获取您需要的信息然后,在您的
AdminActivity
事件类中注意:
$route->methods()
的返回类型是一个数组,包含所有有效的请求方法(GET、HEAD、POST...)