2013-09-07 2 views
0

나는 데이터베이스에있는 다른 테이블의 세부 사항을 저장하는 '테이블'이라는 테이블을 가지고있다. 나는이 테이블에 테이블 이름이 삽입 될 때마다 동일한 테이블이 만들어 지도록 기능을 생성 중이다. 예를 들어 'wf_128fe'라는 테이블을 삽입하면 동적 테이블이있는 동일한 테이블이 만들어집니다. 이제 우리는 새로운 테이블을 즉석에서 생성하기 때문에 각 테이블에 대해 MVC를 작성하지 않습니다. 이 경우이 테이블에서 값을 검색/저장하는 방법은 무엇입니까?케이크 PHP 동적 테이블 검색

<?php 
$table='wf_128fe'; 
$table_details=$this->$table->find('all'); 
?> 

새로운 테이블에는 모델이 없으므로 작동하지 않았습니다. 이 경우 어떻게 새 테이블에서 세부 정보/저장소 데이터를 검색 할 수 있습니까?

답변

0

우선 무엇을하고 있는지 다시 생각해보고 싶을 수도 있습니다. 매우 드문 경우에만 동적으로 테이블을 만들어야하기 때문에이 동적 테이블을 사용하여 달성하고자하는 목표를 달성하는 가장 좋은 방법이 있습니다. CakePHP 표준을 고수하고 있습니다.

이런 식의 일반 모델을 사용하면 작동하고 ClassRegistry::init()을 사용하여 인스턴스를 만들고 적절한 테이블 이름을 전달해야합니다. 심지어 AppModel 클래스가있는 경우에만 작동하며, 이는 대체로 ClassRegistry::init()에 의해 사용됩니다.

$Model = ClassRegistry::init(array('class' => 'Wf128fe', 'table' => 'wf_128fe')); 
$details = $Model->find('all'); 

Model::$nameModel::$aliasModel::$tableModel::$useTable에 대한 wf_128fe 세트로 Wf128fe으로 AppModel의 인스턴스를 생성합니다. 방법을 보여주는

class DynamicTable extends AppModel 
{ 
    public function someMethodDoingSomethingSpecialSpecificToDynamicTables() 
    { 
    } 
} 
$Model = ClassRegistry::init(array('class' => 'DynamicTable', 'table' => 'wf_128fe')); 
$details = $Model->find('all'); 
+0

감사합니다 : 당신이 등 특정 메서드, 속성을해야 할 경우에는

는 언급 한 일반 모델은 갈 수있는 방법이 될 수 있습니다. 그러나 우리가 "$ Model = ClassRegistry :: init (array ('class'=> 'Wf128fe', 'table'=> 'wf_128fe')) 코드를 작성해야 할 곳은 $ details = $ Model-> find (' 모든');" .. AppModel에서 ?? –

+0

대단히 고맙습니다 .. 처음 두 줄의 코드가 작동했습니다 :) –