mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-07-11 11:42:13 +00:00
[BUGFIX] Enchanched regular expression for optinal parameters to
completely ignore path seperators (/).
This commit is contained in:
@@ -274,7 +274,7 @@ abstract class RouterEntry {
|
|||||||
|
|
||||||
if($lastCharacter === '?') {
|
if($lastCharacter === '?') {
|
||||||
$parameter = substr($parameter, 0, strlen($parameter)-1);
|
$parameter = substr($parameter, 0, strlen($parameter)-1);
|
||||||
$regex .= '\\/(?:(?P<'.$parameter.'>[^\/]*)\\/?)';
|
$regex .= '(?:\\/?(?P<'.$parameter.'>[^\/]*)?\\/?)';
|
||||||
$required = false;
|
$required = false;
|
||||||
} else {
|
} else {
|
||||||
$regex .= '\\/(?P<' . $parameter . '>'. $parameterRegex .')\\/';
|
$regex .= '\\/(?P<' . $parameter . '>'. $parameterRegex .')\\/';
|
||||||
|
|||||||
@@ -53,45 +53,50 @@ class RouterResource extends RouterEntry {
|
|||||||
|
|
||||||
$parameters = $this->parseParameters($route, $url, '[0-9]*?');
|
$parameters = $this->parseParameters($route, $url, '[0-9]*?');
|
||||||
|
|
||||||
if(is_array($parameters)) {
|
if($parameters !== null) {
|
||||||
$parameters = array_merge($this->parameters, $parameters);
|
|
||||||
|
if(is_array($parameters)) {
|
||||||
|
$parameters = array_merge($this->parameters, $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
$action = $parameters['action'];
|
||||||
|
unset($parameters['action']);
|
||||||
|
|
||||||
|
// Delete
|
||||||
|
if($request->getMethod() === self::REQUEST_TYPE_DELETE && $this->postMethod === self::REQUEST_TYPE_POST) {
|
||||||
|
return $this->call('destroy', $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update
|
||||||
|
if(in_array($request->getMethod(), array(self::REQUEST_TYPE_PATCH, self::REQUEST_TYPE_PUT)) && $this->postMethod === self::REQUEST_TYPE_POST) {
|
||||||
|
return $this->call('update', $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Edit
|
||||||
|
if(isset($action) && strtolower($action) === 'edit' && $this->postMethod === self::REQUEST_TYPE_GET) {
|
||||||
|
return $this->call('edit', $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create
|
||||||
|
if(strtolower($action) === 'create' && $request->getMethod() === self::REQUEST_TYPE_GET) {
|
||||||
|
return $this->call('create', $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save
|
||||||
|
if($this->postMethod === self::REQUEST_TYPE_POST) {
|
||||||
|
return $this->call('store', $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show
|
||||||
|
if(isset($parameters['id']) && $this->postMethod === self::REQUEST_TYPE_GET) {
|
||||||
|
return $this->call('show', $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Index
|
||||||
|
return $this->call('index', $parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
$action = $parameters['action'];
|
return null;
|
||||||
unset($parameters['action']);
|
|
||||||
|
|
||||||
// Delete
|
|
||||||
if($request->getMethod() === self::REQUEST_TYPE_DELETE && $this->postMethod === self::REQUEST_TYPE_POST) {
|
|
||||||
return $this->call('destroy', $parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update
|
|
||||||
if(in_array($request->getMethod(), array(self::REQUEST_TYPE_PATCH, self::REQUEST_TYPE_PUT)) && $this->postMethod === self::REQUEST_TYPE_POST) {
|
|
||||||
return $this->call('update', $parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Edit
|
|
||||||
if(isset($action) && strtolower($action) === 'edit' && $this->postMethod === self::REQUEST_TYPE_GET) {
|
|
||||||
return $this->call('edit', $parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create
|
|
||||||
if(strtolower($action) === 'create' && $request->getMethod() === self::REQUEST_TYPE_GET) {
|
|
||||||
return $this->call('create', $parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save
|
|
||||||
if($this->postMethod === self::REQUEST_TYPE_POST) {
|
|
||||||
return $this->call('store', $parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show
|
|
||||||
if(isset($parameters['id']) && $this->postMethod === self::REQUEST_TYPE_GET) {
|
|
||||||
return $this->call('show', $parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Index
|
|
||||||
return $this->call('index', $parameters);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user