我是一个初级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