쿼리로 직접 테이블을 만듭니다. 일부 데이터 만 가져 오려고합니다. 그러므로 나는 동적으로 빌드 된 쿼리를 실행하고 Component 클래스에서이 쿼리를 실행 해 봅니다. (이 쿼리를 실행하기 위해 랜덤 한 기존 모델을 사용하는 것이 더 좋은 이유는 무엇입니까?)테이블을 만든 후에 CakePHP에서 테이블을 찾을 수 없습니다.
$query= "CREATE TABLE IF NOT EXISTS testerdbs (
'Ü1' varchar(6) COLLATE utf8_swedish_ci DEFAULT NULL,
'Ü2' varchar(6) COLLATE utf8_swedish_ci DEFAULT NULL,
'Ü3' int(3) DEFAULT NULL,
'Ü4' varchar(6) COLLATE utf8_swedish_ci DEFAULT NULL,
'Ü5' date DEFAULT NULL
)"
$data = ClassRegistry::init('import_files');
$data->query($query);
잘 작동합니다. 동일한 요청에서 컨트롤러의 생성 된 테이블에 액세스하려고합니다.
App::import('Model', "testerdb");
//$this->loadModel("testerdb");
$newTable = ClassRegistry::init("testerdb");
echo '<pre>', print_r($newTable->getColumnTypes()), '</pre>';
내가 같은 요청이 실행하려고하면 내가 항상 오류 얻을 : 다시 정확히 같은 요청을 할 경우
Error: Table testerdbs for model testerdb was not found in datasource default.
을 다 한 시간에 대해 구글 ... 을 잘 작동 그것은 케이크가 모델을 캐시하는 것처럼 보였습니다. 이 요청을 다시 실행하면 모든 테이블이 다시 캐시되고 케이크가 테이블을 찾는다. 그래서 같은 요청으로 생성 된 테이블을로드하거나 가져 오기를 원하지만 작동하지 않습니다.
다른 방법으로 테이블을로드 할 수 있습니까? 내 실수는 어디 갔지?
도움 주셔서 감사합니다.
cakephp의 명명 규칙을 읽으십시오. http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasandbelongstomany-habtm – Aryan