首页 > 解决方案 > 来自不同数据源的具有相同表名的 CakePHP 3 烘焙模型

问题描述

我正在使用CakePHP 3.

我有不同的来源可以使用,每个来源都有不同的users表格。

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

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

bin/cake bake model users -c my_con

它要求覆盖早期的烘焙users模型。

如何从不同的来源烘焙具有相同名称的表?可能在不同的命名空间下。

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

如何将数据与表的列名映射?

标签: cakephpcakephp-3.xcakephp-bake

解决方案


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

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

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

并且fetchAll()有一个参数接受 fetch 类型作为字符串,'assoc', 'obj', 或'num'(默认),也可作为常量 on \Cake\Database\Statement\PDOStatement

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

推荐阅读