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',
,但它無法運行。
請幫我解決它,謝謝!