CakePHP插件抛出"缺少视图"错误但视图文件退出

时间:2013-06-04 14:54:33

标签: php cakephp plugins cakephp-2.0

我正按照the book中的说明为我的cakePHP 2.x应用编写基本插件。

我使用MyPluginAppController.php和MyPluginAppModel.php创建了目录/文件结构。

我将CakePlugin::load('MyPlugin');添加到父应用的bootstrap.php文件中。

然后我创建了一个Controller和Model。但出于某种原因,当我尝试查看mysite.dev/(admin)/my_plugin/my_model/时,我收到了“遗失视图”错误。它说确认视图文件存在,它确实存在!

我认为我没有跳过书中的任何步骤。我做错了什么?

更新

控制器路径:app/Plugin/MyPlugin/Controller/MyModelController.php

查看路径:app/Plugin/MyPlugin/View/MyModel/admin_index.php

网址:http://mysite.dev/admin/my_plugin/my_model/

2 个答案:

答案 0 :(得分:4)

重命名此文件

app/Plugin/MyPlugin/View/MyModel/admin_index.php

到此扩展程序.ctp

app/Plugin/MyPlugin/View/MyModel/admin_index.ctp

这是一个常见的错误。

答案 1 :(得分:0)

我没有使用插件,所以我的情况有点不同。但是,此问题显示在搜索结果页面上,因此我将在此处发布。

这是有问题的控制器。

<?php 

class ArticlesController extends AppController {

    public function beforeFilter() {
    }

    public function view() {
        // do stuff
    }

}

问题:

CakePHP一直向我显示以下错误:

  

缺少视图

     

错误:找不到ArticlesController :: view()的视图。

     

确认您已在以下路径之一中创建了文件:Articles / view.ctp:

调试:

我使用is_readable()stat命令检查了它建议的所有路径,以确保视图文件存在且确实可以被PHP读取。

解决方案:

问题是空beforeFilter()。一旦我删除它一切正常。