2011-11-26 2 views
0

나는 2 개 테이블, 사용자 & 국가 참고 한 : 테이블 이름은PHP ADOdb의 액티브 레코드의 관계는

ADOdb_Active_Record::TableKeyBelongsTo(
    'user', // child table name 
    'id', // child primary key 
    'country', // parent table name 
    'country_id', // child foreign key 
    'id' // parent primary key 
); 

class User_Model extends ADOdb_Active_Record { 
    var $_table = 'user'; 
    ... 
} 

ADOdb_Active_Record::TableKeyHasMany(
    'country', // parent table name 
    'id', // parent primary key 
    'user', // child table name 
    'country_id' // child foreign key 
); 

class Country_Model extends ADOdb_Active_Record { 
    var $_table = 'country'; 
    ... 
} 

$user = new User_Model(); 
$user->load('id=1'); 

단수 그러나이 오류가

1146: Table 'happylucky.countries' doesn't exist 

          ADOConnection._Execute(SHOW COLUMNS FROM `countries`, false) % line 1017, file: adodb.inc.php 
         ADOConnection.Execute(SHOW COLUMNS FROM `countries`) % line 410, file: adodb-mysql.inc.php 
        ADODB_mysql.MetaColumns(countries) % line 390, file: adodb-active-record.inc.php 
        ADODB_Active_Record.UpdateActiveTable() % line 239, file: adodb-active-record.inc.php 
       ADODB_Active_Record.belongsTo(country, country_id, id, ADODB_Active_Record) % line 263, file: adodb-active-record.inc.php 

ADODB_Active_Record::UpdateActiveTable: Invalid table name: countries 
Fatal error: Class 'User' not found in /home/user/public_html/project/application/controllers/welcome.php on line 23 

를 나와의 관계가 잘못 설정되어 있습니까? 또는 테이블 이름 은 복수형이어야합니다 ()?

답변

0

당신은 액티브 레코드 의미가 있습니다

+0

를 사용하기 전에

ADODB_Active_Record::$_changeNames = FALSE;

설정을 시도 할 수 있습니다. 감사 –