我有一个cakephp 3申请
我有一个通用视图,根据每个Model中配置的字段的数组结构呈现数据,此数组包含用于显示视图中每个字段的配置,如(text titles,maxsize,sortable等)和数据库配置喜欢(数据库/表中的列名,数据类型等)在同一个数组中,并且它的工作正常。
public $tableData = [
[
'name' => 'Table1.name',
'title' => 'Name',
'field' => 'name',
'sortable' => true,
'type' => 'string',
'size' => '50px',
],
[
'name' => 'Asosiation1.option',
'title' => 'Topic',
'field' => 'topic_option',
'sortable' => true,
'type' => 'string',
'size' => '150px',
],
... More fields and asosiations
]
但是现在,我需要在不同版本中使用这些相同的模型,因为每个模型的数据库/表的结构每年都在变化,但我需要保存/显示与每个版本对应的数据。< / p>
因此,如果用户请求mySite.com/2010,则Site必须使用特定于该年定义的模型数组结构来显示数据。
所以,我创造了:
/插件/年/ version2010
/插件/年/ version2011
等。
在每次插入中,我复制了所有只更改名称空间的模型,defaultConnectionName(每年1个模式)和数组结构。
这会激发在bootstrap配置中加载多个插件。
有没有办法只根据请求加载必要的插件?(/ 2010,/ 2011等)。
实施例。在bootstrap.php中我为每个插件年做了一次:
Plugin :: load('years / version201X',['bootstrap'=&gt; false,'routes'=&gt; true]);
也
有没有办法避免每次执行loadModel()或TableRegistry :: get()时都必须指定插件名称?
实施例。在主App AppController中我每次都要做:
$这 - &GT; loadModel(的 '岁/ version201X /表1');
或许还有另一种更好的方法可以解决这种情况,我还没有看到