【发布时间】:2017-02-21 12:26:45
【问题描述】:
是否可以使用 select() 获取两个或多个远程表的列?
$rooms = TableRegistry::get('Rooms')
->find()
->contain(['Levels.Buildings'])
->toArray();
...这可行,但会返回三个表的每一列
$rooms = TableRegistry::get('Rooms')
->find()
->select(['Buildings.name'])
->contain(['Levels.Buildings'])
->toArray();
...虽然生成的 select 语句似乎是正确的,但这不会返回任何内容
【问题讨论】:
-
表之间有什么关系?
-
我认为你把我引向了这个问题......似乎选择只适用于 N:1 ...在我的例子中......如果 Rooms 属于 Levels 和 Levels 属于 Buildings,它会起作用。如果是 N:M 或 1:N 我不能使用 select() 不是吗?
标签: php mysql cakephp orm cakephp-3.0