我有以下的模型和控制器的文件,當我訪問這個URL,http://....../pois/index
我得到這個錯誤:CakePHP的調用成員函數的非對象
Notice (8): Undefined property: PoisController::$Poi [APP/controllers/pois_controller.php, line 5]
Fatal error: Call to a member function find() on a non-object in /home/joecoyle/public_html/app/controllers/pois_controller.php on line 5
模型是這樣的,叫poi.php
:
<?php
class Poi extends AppModel {
}
?>
而且控制器是這樣的,命名爲pois_controller.php
<?php
class PoisController extends AppController {
function index(){
$this->set('pois',$this->Poi->find('all'));
}
}
?>
由於我是新來CakePHP的我不知道是什麼原因造成這個錯誤,因爲一切都似乎透露姓名的權利,而我在CakePHP的網站上的教程以下...
謝謝
嗯,這說明了很多 - Poi是興趣點的縮寫 - 我想我可以省下一些打字的工作,但是,如果我要使用PointOfInterest,那麼模型/控制器的名稱是什麼?這個複數的東西真是令人困惑......謝謝。 – joec 2010-04-12 13:12:36
Eeks。我從來沒有成爲我模特中縮寫詞的粉絲,因爲他們應該引用一個「事物」。我可能會把它稱爲'Location'(帶有'LocationsController')或其他一些對約定更友好的東西。正如我上面提到的,雖然,你可以通過告訴Cake如何變換一個給定的名字來定製你的變化。 – 2010-04-12 13:27:40
FWIW,我猜想就Cake而言,'PointOfInterest'的複數將是'PointOfInterests',但您可以複製上面的代碼並進行足夠輕鬆的測試。我沒有嘗試過。 – 2010-04-12 13:31:28