我正在开发Cake 2.4,如果我在控制器中调试$this,那么$this->Model没有设置,但应该设置。
控制器:客户控制器(.php)
型号:CustomerModel(.php)
由于命名惯例是正确的,我不知道问题在哪里。
相关代码:
Customer.php:
<?php
class Customer extends Shop {
public $validate = array(/* ... */);
protected $_schema = array(/* ... */);
public function beforeSave($options = array()) {
parent::beforeSave($options);
}
}
CustomersController.php:
<?php
App::uses('ShopsController', 'Controller');
class CustomersController extends ShopsController {
public function beforeFilter() {
$this->Auth->allow('login');
parent::beforeFilter();
}
}
您的模型文件名错误。它应该是"客户",没有"型号"后缀。只有这样,它才会自动加载,并在控制器中作为$this->Customer可用。
编辑:出于某种原因,你不是在扩展AppModel,而是在扩展ShopModel(为什么?),所以在你的客户模型中试试这个:
public $name = 'Customer';
public $useTable = 'customers';
当您继承控制器或模型时,CakePHP不会正确地合并/更新所有属性。
型号文件名应该是Customer.php
,不要将model
附加到您的型号名称中,在Customer.php
中这样做
<?php
class Customer extends ShopModel {
// ...
}