Router

class Router implements Registrar, BindingRegistrar (View source)

Traits

Macroable

Properties

static protected array $macros The registered string macros. from Macroable
protected Dispatcher $events The event dispatcher instance.
protected Container $container The IoC container instance.
protected RouteCollection $routes The route collection instance.
protected Route $current The currently dispatched route instance.
protected Request $currentRequest The request currently being dispatched.
protected array $middleware All of the short-hand keys for middlewares.
protected array $middlewareGroups All of the middleware groups.
array $middlewarePriority The priority-sorted list of middleware.
protected array $binders The registered route value binders.
protected array $patterns The globally available parameter patterns.
protected array $groupStack The route group attribute stack.
static array $verbs All of the verbs supported by the router.

Methods

static void macro(string $name, callable $macro)

Register a custom macro.

from Macroable
static bool hasMacro(string $name)

Checks if macro is registered.

from Macroable
static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

from Macroable
mixed __call(string $method, array $parameters)

Dynamically handle calls into the router instance.

void __construct(Dispatcher $events, Container $container = null)

Create a new Router instance.

Route get(string $uri, Closure|array|string $action = null)

Register a new GET route with the router.

Route post(string $uri, Closure|array|string $action = null)

Register a new POST route with the router.

Route put(string $uri, Closure|array|string $action = null)

Register a new PUT route with the router.

Route patch(string $uri, Closure|array|string $action = null)

Register a new PATCH route with the router.

Route delete(string $uri, Closure|array|string $action = null)

Register a new DELETE route with the router.

Route options(string $uri, Closure|array|string $action = null)

Register a new OPTIONS route with the router.

Route any(string $uri, Closure|array|string|null $action = null)

Register a new route responding to all verbs.

Route match(array|string $methods, string $uri, Closure|array|string $action = null)

Register a new route with the given verbs.

void resources(array $resources)

Register an array of resource controllers.

void resource(string $name, string $controller, array $options = [])

Route a resource to a controller.

void apiResource(string $name, string $controller, array $options = [])

Route an api resource to a controller.

void group(array $attributes, Closure|string $routes)

Create a route group with shared attributes.

void updateGroupStack(array $attributes)

Update the group stack with the given attributes.

array mergeWithLastGroup(array $new)

Merge the given array with the last group stack.

void loadRoutes(Closure|string $routes)

Load the provided routes.

string getLastGroupPrefix()

Get the prefix from the last group on the stack.

Route addRoute(array|string $methods, string $uri, Closure|array|string|null $action)

Add a route to the underlying route collection.

Route createRoute(array|string $methods, string $uri, mixed $action)

Create a new route instance.

bool actionReferencesController(array $action)

Determine if the action is routing to a controller.

array convertToControllerAction(array|string $action)

Add a controller based route action to the action array.

string prependGroupNamespace(string $class)

Prepend the last group namespace onto the use clause.

Route newRoute(array|string $methods, string $uri, mixed $action)

Create a new Route object.

string prefix(string $uri)

Prefix the given URI with the last prefix.

Route addWhereClausesToRoute(Route $route)

Add the necessary where clauses to the route based on its initial registration.

void mergeGroupAttributesIntoRoute(Route $route)

Merge the group stack with the controller action.

Response dispatch(Request $request)

Dispatch the request to the application.

mixed dispatchToRoute(Request $request)

Dispatch the request to a route and return the response.

Route findRoute(Request $request)

Find the route matching a given request.

mixed runRouteWithinStack(Route $route, Request $request)

Run the given route within a Stack "onion" instance.

array gatherRouteMiddleware(Route $route)

Gather the middleware for the given route with resolved class names.

array sortMiddleware(Collection $middlewares)

Sort the given middleware by priority.

Response prepareResponse(Request $request, mixed $response)

Create a response instance from the given value.

Route substituteBindings(Route $route)

Substitute the route bindings onto the route.

void substituteImplicitBindings(Route $route)

Substitute the implicit Eloquent model bindings for the route.

mixed performBinding(string $key, string $value, Route $route)

Call the binding callback for the given key.

void matched(string|callable $callback)

Register a route matched event listener.

array getMiddleware()

Get all of the defined middleware short-hand names.

$this aliasMiddleware(string $name, string $class)

Register a short-hand name for a middleware.

bool hasMiddlewareGroup(string $name)

Check if a middlewareGroup with the given name exists.

array getMiddlewareGroups()

Get all of the defined middleware groups.

$this middlewareGroup(string $name, array $middleware)

Register a group of middleware.

$this prependMiddlewareToGroup(string $group, string $middleware)

Add a middleware to the beginning of a middleware group.

$this pushMiddlewareToGroup(string $group, string $middleware)

Add a middleware to the end of a middleware group.

void bind(string $key, string|callable $binder)

Add a new route parameter binder.

void model(string $key, string $class, Closure $callback = null)

Register a model binder for a wildcard.

Closure getBindingCallback(string $key)

Get the binding callback for a given binding.

array getPatterns()

Get the global "where" patterns.

void pattern(string $key, string $pattern)

Set a global where pattern on all routes.

void patterns(array $patterns)

Set a group of global where patterns on all routes.

bool hasGroupStack()

Determine if the router currently has a group stack.

array getGroupStack()

Get the current group stack for the router.

mixed input(string $key, string $default = null)

Get a route parameter for the current route.

Request getCurrentRequest()

Get the request currently being dispatched.

Route getCurrentRoute()

Get the currently dispatched route instance.

Route current()

Get the currently dispatched route instance.

bool has(string $name)

Check if a route with the given name exists.

string|null currentRouteName()

Get the current route name.

bool is()

Alias for the "currentRouteNamed" method.

bool currentRouteNamed(string $name)

Determine if the current route matches a given name.

string|null currentRouteAction()

Get the current route action.

bool uses()

Alias for the "currentRouteUses" method.

bool currentRouteUses(string $action)

Determine if the current route action matches a given action.

void auth()

Register the typical authentication routes for an application.

void singularResourceParameters(bool $singular = true)

Set the unmapped global resource parameters to singular.

void resourceParameters(array $parameters = [])

Set the global resource parameter mapping.

array|null resourceVerbs(array $verbs = [])

Get or set the verbs used in the resource URIs.

RouteCollection getRoutes()

Get the underlying route collection.

void setRoutes(RouteCollection $routes)

Set the route collection instance.

Details

static void macro(string $name, callable $macro)

Register a custom macro.

Parameters

string $name
callable $macro

Return Value

void

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Dynamically handle calls into the router instance.

Parameters

string $method
array $parameters

Return Value

mixed

void __construct(Dispatcher $events, Container $container = null)

Create a new Router instance.

Parameters

Dispatcher $events
Container $container

Return Value

void

Route get(string $uri, Closure|array|string $action = null)

Register a new GET route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

Route

Route post(string $uri, Closure|array|string $action = null)

Register a new POST route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

Route

Route put(string $uri, Closure|array|string $action = null)

Register a new PUT route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

Route

Route patch(string $uri, Closure|array|string $action = null)

Register a new PATCH route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

Route

Route delete(string $uri, Closure|array|string $action = null)

Register a new DELETE route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

Route

Route options(string $uri, Closure|array|string $action = null)

Register a new OPTIONS route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

Route

Route any(string $uri, Closure|array|string|null $action = null)

Register a new route responding to all verbs.

Parameters

string $uri
Closure|array|string|null $action

Return Value

Route

Route match(array|string $methods, string $uri, Closure|array|string $action = null)

Register a new route with the given verbs.

Parameters

array|string $methods
string $uri
Closure|array|string $action

Return Value

Route

void resources(array $resources)

Register an array of resource controllers.

Parameters

array $resources

Return Value

void

void resource(string $name, string $controller, array $options = [])

Route a resource to a controller.

Parameters

string $name
string $controller
array $options

Return Value

void

void apiResource(string $name, string $controller, array $options = [])

Route an api resource to a controller.

Parameters

string $name
string $controller
array $options

Return Value

void

void group(array $attributes, Closure|string $routes)

Create a route group with shared attributes.

Parameters

array $attributes
Closure|string $routes

Return Value

void

protected void updateGroupStack(array $attributes)

Update the group stack with the given attributes.

Parameters

array $attributes

Return Value

void

array mergeWithLastGroup(array $new)

Merge the given array with the last group stack.

Parameters

array $new

Return Value

array

protected void loadRoutes(Closure|string $routes)

Load the provided routes.

Parameters

Closure|string $routes

Return Value

void

string getLastGroupPrefix()

Get the prefix from the last group on the stack.

Return Value

string

protected Route addRoute(array|string $methods, string $uri, Closure|array|string|null $action)

Add a route to the underlying route collection.

Parameters

array|string $methods
string $uri
Closure|array|string|null $action

Return Value

Route

protected Route createRoute(array|string $methods, string $uri, mixed $action)

Create a new route instance.

Parameters

array|string $methods
string $uri
mixed $action

Return Value

Route

protected bool actionReferencesController(array $action)

Determine if the action is routing to a controller.

Parameters

array $action

Return Value

bool

protected array convertToControllerAction(array|string $action)

Add a controller based route action to the action array.

Parameters

array|string $action

Return Value

array

protected string prependGroupNamespace(string $class)

Prepend the last group namespace onto the use clause.

Parameters

string $class

Return Value

string

protected Route newRoute(array|string $methods, string $uri, mixed $action)

Create a new Route object.

Parameters

array|string $methods
string $uri
mixed $action

Return Value

Route

protected string prefix(string $uri)

Prefix the given URI with the last prefix.

Parameters

string $uri

Return Value

string

protected Route addWhereClausesToRoute(Route $route)

Add the necessary where clauses to the route based on its initial registration.

Parameters

Route $route

Return Value

Route

protected void mergeGroupAttributesIntoRoute(Route $route)

Merge the group stack with the controller action.

Parameters

Route $route

Return Value

void

Response dispatch(Request $request)

Dispatch the request to the application.

Parameters

Request $request

Return Value

Response

mixed dispatchToRoute(Request $request)

Dispatch the request to a route and return the response.

Parameters

Request $request

Return Value

mixed

protected Route findRoute(Request $request)

Find the route matching a given request.

Parameters

Request $request

Return Value

Route

protected mixed runRouteWithinStack(Route $route, Request $request)

Run the given route within a Stack "onion" instance.

Parameters

Route $route
Request $request

Return Value

mixed

array gatherRouteMiddleware(Route $route)

Gather the middleware for the given route with resolved class names.

Parameters

Route $route

Return Value

array

protected array sortMiddleware(Collection $middlewares)

Sort the given middleware by priority.

Parameters

Collection $middlewares

Return Value

array

Response prepareResponse(Request $request, mixed $response)

Create a response instance from the given value.

Parameters

Request $request
mixed $response

Return Value

Response

Route substituteBindings(Route $route)

Substitute the route bindings onto the route.

Parameters

Route $route

Return Value

Route

void substituteImplicitBindings(Route $route)

Substitute the implicit Eloquent model bindings for the route.

Parameters

Route $route

Return Value

void

protected mixed performBinding(string $key, string $value, Route $route)

Call the binding callback for the given key.

Parameters

string $key
string $value
Route $route

Return Value

mixed

void matched(string|callable $callback)

Register a route matched event listener.

Parameters

string|callable $callback

Return Value

void

array getMiddleware()

Get all of the defined middleware short-hand names.

Return Value

array

$this aliasMiddleware(string $name, string $class)

Register a short-hand name for a middleware.

Parameters

string $name
string $class

Return Value

$this

bool hasMiddlewareGroup(string $name)

Check if a middlewareGroup with the given name exists.

Parameters

string $name

Return Value

bool

array getMiddlewareGroups()

Get all of the defined middleware groups.

Return Value

array

$this middlewareGroup(string $name, array $middleware)

Register a group of middleware.

Parameters

string $name
array $middleware

Return Value

$this

$this prependMiddlewareToGroup(string $group, string $middleware)

Add a middleware to the beginning of a middleware group.

If the middleware is already in the group, it will not be added again.

Parameters

string $group
string $middleware

Return Value

$this

$this pushMiddlewareToGroup(string $group, string $middleware)

Add a middleware to the end of a middleware group.

If the middleware is already in the group, it will not be added again.

Parameters

string $group
string $middleware

Return Value

$this

void bind(string $key, string|callable $binder)

Add a new route parameter binder.

Parameters

string $key
string|callable $binder

Return Value

void

void model(string $key, string $class, Closure $callback = null)

Register a model binder for a wildcard.

Parameters

string $key
string $class
Closure $callback

Return Value

void

Exceptions

ModelNotFoundException

Closure getBindingCallback(string $key)

Get the binding callback for a given binding.

Parameters

string $key

Return Value

Closure

array getPatterns()

Get the global "where" patterns.

Return Value

array

void pattern(string $key, string $pattern)

Set a global where pattern on all routes.

Parameters

string $key
string $pattern

Return Value

void

void patterns(array $patterns)

Set a group of global where patterns on all routes.

Parameters

array $patterns

Return Value

void

bool hasGroupStack()

Determine if the router currently has a group stack.

Return Value

bool

array getGroupStack()

Get the current group stack for the router.

Return Value

array

mixed input(string $key, string $default = null)

Get a route parameter for the current route.

Parameters

string $key
string $default

Return Value

mixed

Request getCurrentRequest()

Get the request currently being dispatched.

Return Value

Request

Route getCurrentRoute()

Get the currently dispatched route instance.

Return Value

Route

Route current()

Get the currently dispatched route instance.

Return Value

Route

bool has(string $name)

Check if a route with the given name exists.

Parameters

string $name

Return Value

bool

string|null currentRouteName()

Get the current route name.

Return Value

string|null

bool is()

Alias for the "currentRouteNamed" method.

Return Value

bool

bool currentRouteNamed(string $name)

Determine if the current route matches a given name.

Parameters

string $name

Return Value

bool

string|null currentRouteAction()

Get the current route action.

Return Value

string|null

bool uses()

Alias for the "currentRouteUses" method.

Return Value

bool

bool currentRouteUses(string $action)

Determine if the current route action matches a given action.

Parameters

string $action

Return Value

bool

void auth()

Register the typical authentication routes for an application.

Return Value

void

void singularResourceParameters(bool $singular = true)

Set the unmapped global resource parameters to singular.

Parameters

bool $singular

Return Value

void

void resourceParameters(array $parameters = [])

Set the global resource parameter mapping.

Parameters

array $parameters

Return Value

void

array|null resourceVerbs(array $verbs = [])

Get or set the verbs used in the resource URIs.

Parameters

array $verbs

Return Value

array|null

RouteCollection getRoutes()

Get the underlying route collection.

Return Value

RouteCollection

void setRoutes(RouteCollection $routes)

Set the route collection instance.

Parameters

RouteCollection $routes

Return Value

void

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.4/Illuminate/Routing/Router.html