0
我有一个类模型(在CakePHP中2.1.3)时:CakePHP的错误:像下面改名类模型
App::uses('AppModel', 'Model');
class MemberRegister extends AppModel
{
public function getUserByID($userID)
{
try {
return $this->find('all', array(
'fields' => array('MemberRegister.id', 'MemberRegister.first_name', 'MemberRegister.last_name'),
'conditions' => array('MemberRegister.id' => $userID),
));
} catch (Exception $ex) {
$this->log($ex->getMessage(), LOG_ERROR);
}
return array();
}
public $useTable = 'tbl_member';
}
这个类是运行良好。
但现在我想重命名类为UserRegister。它成为:
App::uses('AppModel', 'Model');
class UserRegister extends AppModel
{
public function getUserByID($userID)
{
try {
return $this->find('all', array(
'fields' => array('MemberRegister.id', 'MemberRegister.first_name', 'MemberRegister.last_name'),
'conditions' => array('MemberRegister.id' => $userID),
));
} catch (Exception $ex) {
$this->log($ex->getMessage(), LOG_ERROR);
}
return array();
}
public $useTable = 'tbl_member';
}
当我打电话方法getUserByID,它有错误日志:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'MemberRegister.id' in 'field list'
和SQL日志:
SELECT MemberRegister.id,MemberRegister.first_name, MemberRegister.last_name FROM `tbl_member` AS `UserRegister` WHERE MemberRegister.id = 27
显示此SQL,我称为 “AS UserRegister”是错误的原因。 (确切必须是“AS会员注册”)。在find方法
更改代码:
为了解决上述问题,我可以有两个选择
return $this->find('all', array( 'fields' => array('UserRegister.id', 'UserRegister.first_name', 'UserRegister.last_name'), 'conditions' => array('UserRegister.id' => $userID), ));
马上就好。
- 更改为:“AS MemberRegister”。
事实上,我不希望使用第一种选择,因为我必须要改变一些控制器(其中调用方法getUserByID),我只是想用第二个选项太多的事情。
但我不知道如何在我的代码中设置“AS MemberRegister”,因为它会使用我的类名称自动修复代码:我的类名是UserRegister,SQL始终是“AS UserRegister”, 无法更改为“会员注册”,对吗?
我尝试添加代码: '别名'=> 'MemberRegister',
,但它无法运行。
请帮我解决它,谢谢!