Dingo\Api\Routing\Router::group PHP Method

group() public method

Create a new route group.
public group ( array $attributes, callable $callback ) : void
$attributes array
$callback callable
return void
    public function group(array $attributes, $callback)
    {
        if (!isset($attributes['conditionalRequest'])) {
            $attributes['conditionalRequest'] = $this->conditionalRequest;
        }
        $attributes = $this->mergeLastGroupAttributes($attributes);
        if (!isset($attributes['version'])) {
            throw new RuntimeException('A version is required for an API group definition.');
        } else {
            $attributes['version'] = (array) $attributes['version'];
        }
        if ((!isset($attributes['prefix']) || empty($attributes['prefix'])) && isset($this->prefix)) {
            $attributes['prefix'] = $this->prefix;
        }
        if ((!isset($attributes['domain']) || empty($attributes['domain'])) && isset($this->domain)) {
            $attributes['domain'] = $this->domain;
        }
        $this->groupStack[] = $attributes;
        call_user_func($callback, $this);
        array_pop($this->groupStack);
    }

Usage Example

 /**
  * Define the routes for the application.
  *
  * @param  \Illuminate\Routing\Router  $router
  * @return void
  */
 public function map(Router $router, ApiRouter $apiRouter)
 {
     $apiRouter->version($this->version, function ($apiRouter) use($router) {
         $apiRouter->group(['namespace' => $this->namespace], function ($api) use($router) {
             $router->group(['namespace' => $this->namespace], function ($router) use($api) {
                 require app_path('Http/routes.php');
             });
         });
     });
 }