mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 08:47:52 +00:00
Fixed Resource-type not respecting parameters when using getUrl (issue: #666)
This commit is contained in:
@@ -68,12 +68,15 @@ class RouteResource extends LoadableRoute implements IControllerRoute
|
|||||||
*/
|
*/
|
||||||
public function findUrl(?string $method = null, $parameters = null, ?string $name = null): string
|
public function findUrl(?string $method = null, $parameters = null, ?string $name = null): string
|
||||||
{
|
{
|
||||||
$url = array_search($name, $this->names, true);
|
$url = parent::findUrl($method, $parameters, $name);
|
||||||
if ($url !== false) {
|
|
||||||
return rtrim($this->url . $this->urls[$url], '/') . '/';
|
$action = array_search($name, $this->names, true);
|
||||||
|
|
||||||
|
if ($action !== false) {
|
||||||
|
return $url . $this->urls[$action];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function call($method): bool
|
protected function call($method): bool
|
||||||
|
|||||||
@@ -66,4 +66,20 @@ class RouterResourceTest extends \PHPUnit\Framework\TestCase
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testResourceUrls()
|
||||||
|
{
|
||||||
|
TestRouter::resource('/resource', 'ResourceController')->name('resource');
|
||||||
|
|
||||||
|
TestRouter::debugOutputNoReset('/resource');
|
||||||
|
|
||||||
|
$this->assertEquals('/resource/3/create/', TestRouter::router()->getUrl('resource.create', ['id' => 3]));
|
||||||
|
$this->assertEquals('/resource/3/edit/', TestRouter::router()->getUrl('resource.edit', ['id' => 3]));
|
||||||
|
$this->assertEquals('/resource/3/', TestRouter::router()->getUrl('resource.update', ['id' => 3]));
|
||||||
|
$this->assertEquals('/resource/3/', TestRouter::router()->getUrl('resource.destroy', ['id' => 3]));
|
||||||
|
$this->assertEquals('/resource/3/', TestRouter::router()->getUrl('resource.delete', ['id' => 3]));
|
||||||
|
$this->assertEquals('/resource/', TestRouter::router()->getUrl('resource'));
|
||||||
|
|
||||||
|
TestRouter::router()->reset();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user