[英]Kohana View Model Class Not Found
我很沮喪,我必須缺少一些基本的知識,任何想法都將不勝感激。
我已經建立了一個新的Kohana項目,該項目可以很好地與Models和Controllers配合使用。 對於此示例,我將其剝離為一個用戶的一個非常基本的模型和一個內部具有單個索引動作的單個控制器。
當我聽到有關它的好消息時,我決定將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));
}
}
這不起作用,並且抱怨它在我的class / view / user.php文件中找不到類View_User,我顯然有一個View_User類
<?php
class View_User {
}
現在,我假設我設置KOstache或Kohana的方式存在某種問題,但是我不確定自己做錯了什么。
如果我在class / Controller / User.php的底部添加了類定義,那么一切都會按預期進行,只是在另一個文件中找不到該類。
從我讀過的內容來看,如果自動加載器嘗試加載View_User類,它將在classes / view / user.php中查找
我究竟做錯了什么?
當然,與文件夾和文件名有關。
來自Kohana v3.3 Doc:“類名應使用大寫的首字母,並用下划線分隔單詞。下划線很重要,因為它們直接反映了文件系統中的文件位置。”
classes / view / user.php應該變成classes / View / User.php
參考: http : //kohanaframework.org/3.3/guide/kohana/conventions#class-names-and-file-location
Views文件夾不應位於類下,而應如下所示:
application
|_classes
| |_Controller
| | |_User.php
| |_Model
| | |_User.php
|_views
| |_user.php
|_templates
|_user.mustache
您可以在這里http://kohanaframework.org/3.0/guide/kohana/files進行參考。
原來,這是我的文件夾和文件名出現問題的情況。
class / view / user.php應該是
我名為View_User的類的classes / View / User.php
更改此設置后,所有操作均按預期進行。
您可能有權限問題。 就我而言,是httpd服務(apache2)無法訪問我的Web項目文件。 這是一個殘酷的解決方案(僅在您的安全情況允許的情況下才這樣做):
$ sudo chmod -R 0777 /var/www/html/mysite/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.