CakePHP3:插件’;它的词根是前缀
我的路线有问题。我有一个插件,但我无法连接前缀中的路由 插件url:/plugin name/test:在“pluginsName/TestController.php”中调用TestController 我不想 /myprefix/plugin name/test:在“pluginsName/TestController.php”中调用TestController 我的差异测试: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) {
<?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时,我的做法有所不同。