基本上,每次控制器方法運行時我都會呼叫一個事件:
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...)