2011-01-19 4 views
1

샘플 코드 내가 만든 새 테이블을 페이지를 매기 할페이지 매김 Cakephp에서 테이블을 동적으로 생성 했습니까?

  mysql_query('SET AUTOCOMMIT=0;'); 
      mysql_query('START TRANSACTION;'); 
      $tableName = rand().'_table;' 
      $this->loadModel('Home'); // Model for homes_table 

      $sql = 'CREATE TABLE '.$tableName.'_table LIKE homes_table'; 
      mysql_query($sql); 
      // FEW INSERT STATEMENTS ON THE NEW TABLE $tableName // 
      /* 

      Here I want to paginate the new table 
      using $this->paginate(); 
      HOW? 

      */ 

     mysql_query('TRUNCATE table '.$tableName); 
     mysql_query('COMMIT;'); 

제발 봐? 로직은 사용자가 스크립트를 실행할 때마다 새로운 무작위로 명명 된 테이블이 생성되고 페이지가 매겨진 다음 드롭됩니다 ... 또는 어떻게 모델을 동적으로 생성 된 테이블에 cakePHP로 할당합니까?

답변

1

당신이하고있는 소리가 나쁘다. 그 외에도 CREATE TABLE, TRUNCATE, COMMIT 등을 호출해서는 안됩니다.

올바르게 테이블을 만들고 삭제하는 방법에 대한 sest suite를 살펴보고 트랜잭션 수행 방법에 대한 API를 읽으십시오. http://api13.cakephp.org/class/data-source#method-DataSourcebegin

도이 자동을 수행 할 수 있도록 케이크의 복수형이어야합니다. 따라서 예제가 작동하지 않습니다.

당신은

$Something = ClassRegistry::init(Inflector::classify($tableName . '_suffix')); 
를 수행하여 모델의 인스턴스를 얻을 수 있습니다