我正在使用Cake 2.4,如果我在我的控制器中调试$ this,那么$ this-> Model未设置但应该。
Controller:CustomersController(.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();
}
}
答案 0 :(得分:1)
您的模型文件名错误。它应该是“Customer”而没有“Model”后缀。只有这样,它才会自动加载并在控制器中以$ this-&gt; Customer的形式提供。
编辑:由于某种原因,你不是扩展AppModel而是扩展ShopModel(为什么?),所以在你的客户模型中试试这个:
public $name = 'Customer';
public $useTable = 'customers';
继承控制器或模型时,CakePHP无法正确合并/更新所有属性。
答案 1 :(得分:0)
模型文件名应为Customer.php
,请勿将model
附加到您的模型名称,请在Customer.php
<?php
class Customer extends ShopModel {
// ...
}