首先,您可能想重新考虑您在那里所做的事情,仅在极少数的边缘情况下才需要动态创建表,因此很可能有更好的方法来实现您尝试使用此动态表实现的任何目标,同时也坚持 CakePHP 标准。
话虽如此,为此目的使用通用模型应该可以工作,使用ClassRegistry::init()
并传递适当的表名来实例化它。这甚至可以在只AppModel
存在一个类的情况下工作,该类被ClassRegistry::init()
.
$Model = ClassRegistry::init(array('class' => 'Wf128fe', 'table' => 'wf_128fe'));
$details = $Model->find('all');
这将创建一个AppModel
, 和Wf128fe
as的实例,并设置为Model::$name
and 。Model::$alias
wf_128fe
Model::$table
Model::$useTable
如果您需要特定的方法、属性等,提到的通用模型可能是要走的路:
class DynamicTable extends AppModel
{
public function someMethodDoingSomethingSpecialSpecificToDynamicTables()
{
}
}
$Model = ClassRegistry::init(array('class' => 'DynamicTable', 'table' => 'wf_128fe'));
$details = $Model->find('all');