2013-06-04 49 views
0

我正在按照the book中的说明为我的cakePHP 2.x应用程序编写一个基本插件。CakePHP插件抛出“Missing View”错误,但查看文件退出

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

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

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

我不认为我跳过书中的任何步骤。我究竟做错了什么?

更新:

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

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

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

+0

什么是控制器的路径,以及您的插件中的视图文件的路径是什么?我有预感,但首先需要更多细节。 –

+0

我用请求的信息更新了问题。 – emersonthis

回答

4

此文件重命名

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

对此扩展.ctp

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

这是一个常见的错误。

+1

Zoinks !!!!!!!!! – emersonthis

0

我没有使用插件,所以我的情况有点不同。然而,这个问题出现在搜索结果页面上,所以我会在这里发布。

这是有问题的控制器。

<?php 

class ArticlesController extends AppController { 

    public function beforeFilter() { 
    } 

    public function view() { 
     // do stuff 
    } 

} 

问题:

CakePHP的不停向我展示了以下错误:

Missing View

Error: The view for ArticlesController::view() was not found.

Confirm you have created the file: Articles/view.ctp in one of the following paths:

调试:

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

解决方法:

的问题是有一个空beforeFilter()。只要我删除它,一切工作。