app\models\Route::deleteLaravelRoutes PHP Method

deleteLaravelRoutes() public static method

public static deleteLaravelRoutes ( )
    public static function deleteLaravelRoutes()
    {
        $laravelRoutes = \Route::getRoutes();
        $dbRoutes = \App\Models\Route::all();
        $dbRoutesToDelete = [];
        $cnt = 0;
        foreach ($dbRoutes as $dbRoute) {
            $dbRouteActionName = $dbRoute->action_name;
            $laravelRoute = null;
            // Try to find by action
            $laravelRoute = $laravelRoutes->getByAction($dbRouteActionName);
            // Try to find by name
            if (null == $laravelRoute) {
                $dbRouteName = $dbRoute->name;
                $laravelRoute = $laravelRoutes->getByName($dbRouteName);
            }
            // Laravel route not found, add to list to delete.
            if (null == $laravelRoute) {
                $dbRoutesToDelete[] = $dbRoute->id;
            }
        }
        if (($cnt = count($dbRoutesToDelete)) > 0) {
            \App\Models\Route::destroy($dbRoutesToDelete);
        }
        return $cnt;
    }

Usage Example

 /**
  * @return \Illuminate\View\View
  */
 public function load()
 {
     Audit::log(Auth::user()->id, trans('admin/routes/general.audit-log.category'), trans('admin/routes/general.audit-log.msg-load'));
     $nbRoutesLoaded = \App\Models\Route::loadLaravelRoutes('/.*/');
     $nbRoutesDeleted = \App\Models\Route::deleteLaravelRoutes();
     Flash::success(trans('admin/routes/general.status.synced', ['nbLoaded' => $nbRoutesLoaded, 'nbDeleted' => $nbRoutesDeleted]));
     return redirect('/admin/routes');
 }