Browse Source

Merge pull request #10488 from chrisShick/ticket-10423

Adding controller mapping in resources
Mark Story 9 years ago
parent
commit
1151f5d60e
2 changed files with 15 additions and 1 deletions
  1. 2 1
      src/Routing/RouteBuilder.php
  2. 13 0
      tests/TestCase/Routing/RouteBuilderTest.php

+ 2 - 1
src/Routing/RouteBuilder.php

@@ -324,6 +324,7 @@ class RouteBuilder
             'actions' => [],
             'map' => [],
             'prefix' => null,
+            'controller' => $name
         ];
 
         foreach ($options['map'] as $k => $mapped) {
@@ -365,7 +366,7 @@ class RouteBuilder
 
             $url = '/' . implode('/', array_filter([$urlName, $params['path']]));
             $params = [
-                'controller' => $name,
+                'controller' => $options['controller'],
                 'action' => $action,
                 '_method' => $params['method'],
             ];

+ 13 - 0
tests/TestCase/Routing/RouteBuilderTest.php

@@ -409,6 +409,19 @@ class RouteBuilderTest extends TestCase
     }
 
     /**
+     * Test connecting resources with a controller
+     *
+     * @return void
+     */
+    public function testResourcesController()
+    {
+        $routes = new RouteBuilder($this->collection, '/api');
+        $routes->resources('Articles', ['controller' => 'Posts']);
+        $all = $this->collection->routes();
+        $this->assertEquals('Posts', $all[0]->defaults['controller']);
+    }
+
+    /**
      * Test connecting resources with a prefix
      *
      * @return void