2014-01-13 47 views
0

這是我第一次部署FuelPHP,雖然我是CodeIgniter的長期用戶。FuelPHP簡單類未找到錯誤

我收到以下錯誤,當我加載頁面:

ErrorException [ Fatal Error ]: 
Class 'Model\Model_UPS' not found 

/classes/controller/ups.php

<?php 
use \Model\Model_UPS; 
class Controller_UPS extends Controller { 
    public function action_index() { 
     $view = View::forge('json'); 
     $view->title = Model_UPS::get_load(); 
     return $view; 
    } 
} 
?> 

/classes/model/model_ups.php或ups.php

<?php 
namespace Model; 
class Model_UPS extends \Model { 
    public static function get_load() { 
     return "This is the load!"; 
    } 
} 
?> 

/views/json.php

<?=$title;?> 

錯誤頁面突出顯示$view->title = Model_UPS::get_load();行ups.php。我已經嘗試過幾乎所有可以使用的配置,命名空間,模型文件名和模型類名。我似乎無法找到一個超級簡單的MVC示例作爲指導。我試着盡我所能複製FuelPHP文檔,但都失敗了。任何人都可以找到這個問題嗎?

+0

我不知道codeigniter,但使用命名空間和僞下劃線命名空間類名似乎很奇怪:'\ Model \ Model_UPS';可能它應該是:'\ Model \ UPS' ... – feeela

+0

CodeIgniter需要這些前綴,因爲它沒有名稱空間,並且它也不支持文件夾級聯(所有類都在同一個文件夾中),這是長和強調的另一個原因類名稱。這在FuelPHP中是不需要的。 – WanWizard

回答

4
  • 重命名文件:模型/ model_ups.php模型/ ups.php
  • 重命名類:Model_UPSUPS
  • 變化:使用\型號\ Model_UPS;使用\型號\ UPS;
  • 更改:Model_UPS :: get_load();UPS :: get_load();
+0

這工作!你能描述爲什麼不同地區需要特別命名嗎?也許我在問他們如何適當地互動。在FuelPHP文檔中有關於如何將Model_用作模型前綴的說明。如果我想這樣做,是否只是將它製作爲model_ups.php,Model_UPS,使用\ Model \ Model_UPS和Model_UPS :: get_load()?我可以發誓我嘗試過,也許我沒有。 –

+0

FuelPHP使用級聯文件系統,類似於Kohana(並且也是一個點CodeIgniter)。該系統與預命名空間時間兼容,並使用下劃線創建文件夾層次結構,因此A_B_C將成爲文件系統中的一個/ b/c.php文件。現在,我根本不會使用下劃線,只有命名空間,就像vmartins所建議的那樣。 – WanWizard