精简控制器查询胖模型而不是调用方法

时间:2011-09-20 21:23:20

标签: php cakephp

我使用的瘦控制器调用Fat模型中的方法。当我调用一个驻留在我的胖模型中的方法时,我会收到下面的警告/错误。我的控制器似乎正在尝试查询该方法。非常感谢任何帮助。

Warning (512): SQL Error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'testMe' at line 1 [CORE/cake/libs/model/datasources/dbo_source.php, line 684]

这是我在查询日志中看到的错误:

testMe  1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'testMe' at line 1

为了诊断这个问题,我已经愚弄了我的模型。

这是我模型的当前状态(user_entity_license.php):

class UserEntityLicense extends UserAgentAppModel {
var $name = 'UserEntityLicense';
var $primaryKey = 'license_id';
var $actsAs = array('Containable');

var $belongsTo = array('UserEntity' => array('className' => 'UserEntity','foreignKey' => 'entity_id'));

public function testMe()
{
    return 'This is a test';
}
}

这是我的控制器的当前状态(user_entity_licenses_controller.php):

<?php
class UserEntityLicensesController extends UserAgentAppController {

var $name = "UserEntityLicenses";
var $uses = array('UserEntityLicense','UserEntity');

function expiringLicenses()
{
    debug($this->UserEntityLicense->testMe());
}
}

1 个答案:

答案 0 :(得分:2)

根据我们的评论主题,您必须使用符号

指定插件包中的模型

<packagename.modelname>如下所示:

$uses = array('SomePackage.SomeModel');

如果不这样做,将导致您的控制器无法找到该型号。