我有一个类模型(在CakePHP 2.1.3中),如下所示:
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 log:
SELECT MemberRegister.id,MemberRegister.first_name, MemberRegister.last_name FROM `tbl_member` AS `UserRegister` WHERE MemberRegister.id = 27
这个SQL显示我调用了#34; AS UserRegister"是错误的原因。 (确实必须是" AS MemberRegister")。
要解决上述问题,我可以选择2个选项:
将find方法中的代码更改为:
return $this->find('all', array(
'fields' => array('UserRegister.id', 'UserRegister.first_name', 'UserRegister.last_name'),
'conditions' => array('UserRegister.id' => $userID),
));
没关系。
事实上,我不想使用第一个选项,因为我必须在一些控制器(其中调用方法getUserByID)中改变很多东西,我只想使用第二个选项。
但我不知道如何设置" AS MemberRegister"在我的代码中,因为它接收了用我的类名自动修复的代码:我的类名是UserRegister然后SQL总是" AS UserRegister", 无法更改为" MemberRegister",对吧?
我尝试添加代码:'别名' => ' MemberRegister',
但它没有运行。
请帮我解决,谢谢!
答案 0 :(得分:1)
您可以使用$name
属性:
App::uses('AppModel', 'Model');
class UserRegister extends AppModel
{
public $name = 'MemberRegister';
public $useTable = 'tbl_member';
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();
}
}