当我使用控制器的默认模型并且不设置 $uses 变量时,模型的行为与它们各自模型文件中的声明相同。但是,当我使用 $uses 变量时,似乎没有附加任何行为或验证标准。
例子:
class OrdersController extends CakeCartAppController {
public $helpers = array('CakeCart.ProductDisplay');
public $components = array('CakeCart.AuthorizeNet','Security');
public $uses = array('Order','CompanyLogin','Invoice');//COMMENTING THIS LINE OUT MAKES IT WORK!
……
//see if order information validates
$this->Order->set($orderinfo);
if ($this->Order->validates()) {//ONLY WORKS WHEN THE USES VARIABLE IS NOT DECLARED
编辑!
自己解决了,麻烦了。基本上,由于这是一个插件,您必须在插件的命名空间中声明“使用”关联:
public $uses = array('CakeCart.Order','CompanyLogin','CakeCart.Invoice');