Added RoutePartialGroup support.

This commit is contained in:
Simon Sessingø
2017-09-03 18:24:51 +01:00
parent 7f924c7d0a
commit a5aac57ce9
7 changed files with 82 additions and 20 deletions
+24 -2
View File
@@ -43,6 +43,7 @@ If you want a great new feature or experience any issues what-so-ever, please fe
- [Namespaces](#namespaces)
- [Subdomain-routing](#subdomain-routing)
- [Route prefixes](#route-prefixes)
- [Partial groups](#partial-groups)
- [Form Method Spoofing](#form-method-spoofing)
- [Accessing The Current Route](#accessing-the-current-route)
- [Other examples](#other-examples)
@@ -357,7 +358,7 @@ SimpleRouter::any('foo', function() {
});
```
We've created a simple method which matches `GET` and `POST` which is most commenly used:
We've created a simple method which matches `GET` and `POST` which is most commonly used:
```php
SimpleRouter::form('foo', function() {
@@ -541,7 +542,7 @@ SimpleRouter::group(['namespace' => 'Admin'], function () {
});
```
### Subdomain-routing
### Sub domain-routing
Route groups may also be used to handle sub-domain routing. Sub-domains may be assigned route parameters just like route URIs, allowing you to capture a portion of the sub-domain for usage in your route or controller. The sub-domain may be specified using the `domain` key on the group attribute array:
@@ -565,6 +566,27 @@ SimpleRouter::group(['prefix' => '/admin'], function () {
});
```
## Partial groups
Partial router groups has the same benefits as a normal group, but supports parameters and are only rendered when the url is matched.
This can be extremely useful in situations where you only want certain routes added when certain criteria has been met.
**NOTE:** Use partial groups with caution as routes added within are only rendered and available once the url of the partial-group has matched. This can cause `url()` not to find urls for the routes added within.
**Example:**
```php
SimpleRouter::partialGroup('/admin/{applicationId}', function ($applicationId) {
// Routes within are rendered when the group matches
// The url "/admin/{applicationId}" will be prepended to any routes added here.
});
```
## Form Method Spoofing
HTML forms do not support `PUT`, `PATCH` or `DELETE` actions. So, when defining `PUT`, `PATCH` or `DELETE` routes that are called from an HTML form, you will need to add a hidden `_method` field to the form. The value sent with the `_method` field will be used as the HTTP request method: