来自不同数据源的具有相同 table 名称的 CakePHP 3 烘焙模型

CakePHP 3 bake model with same table name from different datasource

我正在使用 CakePHP 3

我有不同的来源要使用,每个都有不同的 users table。

简而言之,我正在创建一个主面板来管理来自所有其他应用程序的用户。

当我从不同的连接烘烤 users table 时

bin/cake bake model users -c my_con

它要求覆盖之前烘焙的 users 模型。

如何烘焙 table 来自不同来源的相同名称?可能在不同的命名空间下。

并且不可能得到哪个索引代表哪个列。

如何将数据映射到 table 的列名?

您可以使用不同的模型名称,并通过 --table 选项显式传递数据库名称,例如:

bin/cake bake model UsersAlias --table users -c my_con

无法直接使用不同的命名空间,因为 models/tablesBake 仅支持将文件创建到插件中,那将是一个不同的命名空间,但您当然需要为每个源创建一个单独的插件,这可能有点过头了。

fetchAll() has one argument that accepts the fetch type as a string, 'assoc', 'obj', or 'num' (default), also available as constants on \Cake\Database\Statement\PDOStatement

$result = $query->fetchAll(\Cake\Database\Statement\PDOStatement::FETCH_TYPE_ASSOC);