【问题标题】:Missing Controller for a plugin in cakephp 3.6cakephp 3.6 中的插件缺少控制器
【发布时间】:2018-07-19 16:16:34
【问题描述】:

我烘焙了一个插件并手动创建了一个控制器,它正在我的本地服务器上运行,但是当我移动插件并点击 url cake 时说控制器在插件控制器位置丢失,即 plugins/TourPackages/src/Controller /TourPackagesController.php 该文件存在于该位置,但它仍然说控制器丢失。我附上它的屏幕截图。对于我创建的其他插件,我正面临这个问题。

【问题讨论】:

    标签: cakephp controller cakephp-3.x


    【解决方案1】:

    我猜是路由问题我尝试了插件名称和控制器名称的 URL 的多种组合。

    做了什么 在视图中 (.ctp)

     <?php echo $this->Html->link('<h3>Package Name</h3>', ['controller'=>'TourPackages', 'plugin'=>'TourPackages', 'action'=>'sample'], ['title'=>'Package Name', 'class'=>'', 'escape'=>false]);?>
    

    生成像&lt;a href="http://demos.cybershines.com/naturessprout/tour-packages/tour-packages/sample" title="Package Name" class=""&gt;&lt;h3&gt;Package Name&lt;/h3&gt;&lt;/a&gt;这样的html

    在我的插件路由器中,路由代码是 Router::plugin( 'TourPackages', ['path' => '/tour-packages'], function (RouteBuilder $routes) { $routes->fallbacks(DashedRoute::class); } ); 这个我改成

    Router::plugin(
    'TourPackages',
    ['path' => '/tour-packages'],
    function (RouteBuilder $routes) {
        $routes->get('/tour-packages/tour-packages/*', ['controller' => 'TourPackages']);
        $routes->fallbacks(DashedRoute::class);
    }
    

    ); 它采用插件的“路径”/tour-packages,但控制器为“TourPackages” 所以当我点击http://demos.cybershines.com/naturessprout/tour-packages/TourPackages/sample 时,蛋糕会将我带到正确的位置和视图。所以,我通过添加修改了路由代码 $routes-&gt;get('/tour-packages/tour-packages/*', ['controller' =&gt; 'TourPackages']); 在 routing.php 中并告诉 cake 为旅游包执行 TourPackagesController。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      相关资源
      最近更新 更多