我有一个名为“表”的表,该表存储数据库中其他表的详细信息。我现在正在创建一个功能,以便每当将表名插入该表时,都会创建同一表。例如,如果我插入一个名为“ wf_128fe”的表,则将使用一些动态字段创建该表。现在,由于我们正在动态创建新表,因此我们不会为每个表创建MVC。在这种情况下,我们如何在这些表中检索/存储值。
<?php
$table='wf_128fe';
$table_details=$this->$table->find('all');
?>
这没有用,因为新表没有任何模型。在这种情况下,我该如何检索详细信息/将数据存储在该新表中。
首先,您可能想重新考虑您在这里所做的事情,仅在非常罕见的情况下才需要动态创建表,因此,最有可能有更好的方法来实现您希望通过此动态表实现的目标,而同时遵守CakePHP标准。
话虽这么说,为此目的使用通用模型应该可以工作,使用实例化它ClassRegistry::init()
并传递适当的表名。甚至只AppModel
存在一个类,该类也可以使用ClassRegistry::init()
。
$Model = ClassRegistry::init(array('class' => 'Wf128fe', 'table' => 'wf_128fe'));
$details = $Model->find('all');
这将创建一个实例AppModel
,以Wf128fe
作为Model::$name
和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');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句