我是Cake用户的开始,并尝试在已有的应用程序上做一些工作。在创建新控制器时遇到问题。我创建了StoreController,当我尝试调用其中的方法时,我得到下面的错误。没有表'store',但似乎它正在尝试自动加载与控制器相关的模型。如何阻止我的应用程序尝试加载此控制器的模型?
Missing Database Table
Error: Database table stores for model Store was not found.
答案 0 :(得分:5)
这样做,你也可以将它分配给一个空数组,如此
var $uses = array();
答案 1 :(得分:0)
想想我发现了......
class StoreController extends AppController {
// Do not preload any models, we will do this on demand to prevent waste.
var $uses = '';
答案 2 :(得分:0)
如果您有这样的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;
}
?>
然后您可以使用Model :: _ schema属性。这比你要求的要多,所以我会让你自己研究_schema并验证数据库表不会处理的数据。