doumie6223 2017-11-16 05:43
浏览 51
已采纳

无法在Cakephp中调用插件控制器

I have a plugin named as PanelAdmin. It has Controller UsersController.php and inside it there are different actions defined. I have called the default controller within the plugin through this code

$routes->connect('/PanelAdmin', ['plugin' => 'PanelAdmin','controller' => 'default','action' => 'index']);

but cannot call other controller if i hit this url:

http://localhost/multi_shopping/PanelAdmin/Users/

One thing more i want to clear is i have to define routes for all controllers actions in routes.php. Please solve my issue. Thanks

  • 写回答

1条回答 默认 最新

  • douxin1163 2017-11-16 16:05
    关注

    In your plugin routes.php make sure you are setting a fallback route.

    routes.php

    <?php
    use Cake\Routing\Route\DashedRoute;
    use Cake\Routing\RouteBuilder;
    use Cake\Routing\Router;
    
    Router::plugin(
        'PanelAdmin',
        ['path' => '/PanelAdmin'],
        function (RouteBuilder $routes) {
            $routes->fallbacks(DashedRoute::class);
        }
    );
    

    From the DashedRoute class:

    /**
     * This route class will transparently inflect the controller, action and plugin
     * routing parameters, so that requesting `/my-plugin/my-controller/my-action`
     * is parsed as `['plugin' => 'MyPlugin', 'controller' => 'MyController', 'action' => 'myAction']`
     */
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?