CakePHP3:插件’;它的词根是前缀

CakePHP3:插件’;它的词根是前缀,cakephp,routing,cakephp-3.0,Cakephp,Routing,Cakephp 3.0,我的路线有问题。我有一个插件,但我无法连接前缀中的路由 插件url:/plugin name/test:在“pluginsName/TestController.php”中调用TestController 我不想 /myprefix/plugin name/test:在“pluginsName/TestController.php”中调用TestController 我的差异测试: <?php Router::prefix('myprefix', function ($routes) {

我的路线有问题。我有一个插件,但我无法连接前缀中的路由

插件url:/plugin name/test:在“pluginsName/TestController.php”中调用TestController

我不想 /myprefix/plugin name/test:在“pluginsName/TestController.php”中调用TestController

我的差异测试:

<?php
Router::prefix('myprefix', function ($routes) {
    // Call TestController in my plugin but in "pluginsName/Api/TestController.php"
    $routes->connect('/plugin-name/test', ['plugin' => 'PluginName', 'controller' => 'Test', 'action' => 'display']);

    // Error
    $routes->connect('/plugin-name/test', ['plugin' => 'PluginName', 'controller' => 'Test', 'action' => 'display', 'prefix'=>false]);

     Not work
     $routes->plugin('PluginName', function($routes) {
         $routes->connect('/test', ['controller' => 'Test', 'action' => 'display']);
       });

});

试试这个。应该可以

Router::plugin('Contacts', ['_namePrefix' => 'contacts:'], function ($routes) {
    $routes->scope('/api', ['_namePrefix' => 'api:'], function ($routes) {
        // This route's name will be `contacts:api:ping`
        $routes->connect('/ping', ['controller' => 'Pings'], ['_name' => 'ping']);
    });
});
它将使URL
/contacts/api/ping
重定向到带有pings控制器的contacts插件

例如:

 Router::plugin('Contacts', ['_namePrefix' => 'contacts:'], function ($routes) {  
        // This route's name will be `contacts:ping`
        $routes->connect('/ping', ['controller' => 'Pings'], ['_name' => 'ping']);

});

它将重定向到联系人插件和Pings控制器,如
/contacts/ping

试试这个。应该可以

Router::plugin('Contacts', ['_namePrefix' => 'contacts:'], function ($routes) {
    $routes->scope('/api', ['_namePrefix' => 'api:'], function ($routes) {
        // This route's name will be `contacts:api:ping`
        $routes->connect('/ping', ['controller' => 'Pings'], ['_name' => 'ping']);
    });
});
它将使URL
/contacts/api/ping
重定向到带有pings控制器的contacts插件

例如:

 Router::plugin('Contacts', ['_namePrefix' => 'contacts:'], function ($routes) {  
        // This route's name will be `contacts:ping`
        $routes->connect('/ping', ['controller' => 'Pings'], ['_name' => 'ping']);

});

它将重定向到Contact-plugin和Pings控制器,如
/contacts/ping

谢谢,但我想像url
/api/contacts/ping
一样,控制器ping位于
src/plugin/contacts/controller/PingController
中。我做了不同的事情。谢谢,但我想像url
/api/contacts/ping
一样在
src/plugin/contacts/controller/PingController
中使用控制器ping时,我的做法有所不同。