我是一個初級Cake用戶,並試圖在已經存在的應用程序上做一些工作。當我創建一個新的控制器時遇到問題。我創建了StoreController,當我嘗試調用其中的方法時,我得到下面的錯誤。沒有表'商店',但它似乎試圖自動加載與控制器有關的模型。我怎樣才能防止我的應用程序嘗試加載該控制器的模型?防止控制器試圖自動加載模型
Missing Database Table
Error: Database table stores for model Store was not found.
我是一個初級Cake用戶,並試圖在已經存在的應用程序上做一些工作。當我創建一個新的控制器時遇到問題。我創建了StoreController,當我嘗試調用其中的方法時,我得到下面的錯誤。沒有表'商店',但它似乎試圖自動加載與控制器有關的模型。我怎樣才能防止我的應用程序嘗試加載該控制器的模型?防止控制器試圖自動加載模型
Missing Database Table
Error: Database table stores for model Store was not found.
這將做到這一點,你也可以只把它分配給一個空數組像這樣
var $uses = array();
想我找到它......
class StoreController extends AppController {
// Do not preload any models, we will do this on demand to prevent waste.
var $uses = '';
如果你有一個AppController的像這樣..
<?php
Class AppController extends Controller {
public $uses = array('GlobalModel');
}
?>
而你使用一個空的數組......
<?php
Class StoresController extends AppController {
public $uses = array();
}
?>
然後StoresController仍會有從AppController中
訪問GlobalModel如果使用
<?php
Class StoresController extends AppController {
public $uses = '';
}
?>
然後StoresController將無法訪問任何車型。
當有人想要一個沒有模型的控制器時,有一段很長的時間,這是因爲他們不想將控制器與數據庫表相關聯。但作出驗證所提交的數據等更容易,你可能要考慮什麼樣的目的是
<?php
Class StoresController extends AppModel {
public $name = "Stores";
public $uses = array('Store');
}
?>
<?php
Class Store extends AppModel {
public $name = "Store";
public $useTable = false;
}
?>
然後你可以使用模型:: _架構屬性。這比你要求的要多,所以我會讓你對_schema進行自己的研究,並驗證那些不會被數據庫表處理的數據。
+1 - 使用空數組是正確的方法。我記得後來空字符串方法的問題,但從那以後可能已經解決了。 – deizel 2009-11-09 14:48:23
前段時間我也有一個空字符串的問題,它現在可以工作,但最好是安全而不是抱歉! – Dean 2009-11-09 22:51:39