2013-04-27 100 views
0

我很难过,我必须缺少一些基本的东西,任何想法都将不胜感激。Kohana查看模型类未找到

我已经建立了一个新的Kohana项目,它可以很好地处理模型和控制器。对于这个例子,我已经将它剥离回一个单一的非常基本的用户模型和一个单一的索引动作的控制器。

我决定使用KOstache作为我的模板引擎,因为我听说了它的好东西。我下载了模块和供应商子模块,这似乎工作正常。

我的问题棱试图创建我的名为View_User视图模型类的新实例时,Kohana中抛出* ErrorException [致命错误]:类“View_User”找不到*

我的目录结构如下

application 
    |_classes 
    |  |_Controller 
    |  | |_User.php 
    |  |_Model 
    |  | |_User.php 
    |  |_view 
    |   |_user.php 
    |_templates 
     |_user.mustache 

该项目还有其他文件夹,但我相信这些是相关的。

我控制器似乎是类的问题

<?php defined('SYSPATH') or die('No direct script access.'); 

class Controller_User extends Controller { 

     public function action_index() 
     { 
       $renderer = Kostache_Layout::factory(); 
       $view = new View_User; 
       $view->title = 'This is the test title'; 
       $this->response->body($renderer->render($view)); 
     } 

} 

这并不工作,并抱怨说,它无法找到类View_User但在我的课/视图/ user.php的文件,我显然有View_User类

<?php 
class View_User { 
} 

现在,我认为它是某种与我设立KOstache或Kohana的方式问题,但我不能确定什么,我做错了。

如果我在类/Controller/User.php底部包含类定义,那么一切都按预期工作,它只是在另一个文件中找不到该类。

从如果磁带自动加载尝试加载类View_User它将在班/视图/ user.php的

我在做什么错了,我读过什么?

+0

Kohana的是什么版本您使用的?我注意到你标记了它3.2,但是我可以看到它为什么不起作用,如果它是3.3。 – 2013-04-27 21:19:45

+0

@MichalM对不起,该标签是错误的,我正在使用3.3。这是一个目录命名问题,因为类名是View_User而不是view_user,所以它需要是classes/View/User.php而不是classes/view/user.php。 – 2013-04-27 21:37:08

+0

这就是我的想法,因此这个问题。 :) – 2013-04-28 16:39:49

回答

0

浏览文件夹不应该下的类,但应该是这样的:

application 
|_classes 
|  |_Controller 
|  | |_User.php 
|  |_Model 
|  | |_User.php 
|_views 
| |_user.php 
|_templates 
    |_user.mustache 

你可以看看这里http://kohanaframework.org/3.0/guide/kohana/files以供参考。

+0

我相信这是真的Kohana意见,但不是View_Models KOstache。无论哪种方式,我已经尝试把它放在视图文件夹,这仍然有抛出相同的异常。 – 2013-04-27 16:40:36

0

事实证明,这是我的文件夹和文件名的案例问题。

的类/视图/ user.php的应该是

类/查看/ user.php的上课我叫View_User

预期改变这一点,所有的作品后。

0

你可能有权限问题。在我的情况下,它是httpd服务(apache2),无法访问我的web项目文件。 这里是一个残酷的解决方案(做到这一点只有当你的安全状况允许的话):

$ sudo chmod -R 0777 /var/www/html/mysite/ 

更多信息: move_uploaded_file gives "failed to open stream: Permission denied " error after all configurations i did

+1

'chmod 777'通常是一个[可怕的解决方案](https://serverfault.com/questions/364677/why-is-chmod-r-777-destructive) – Machavity 2017-09-12 13:52:17