1

我有两个模型,区域和区域。我不明白为什么 Cake 的 find 不允许我从相关表中指定字段。

这些条件,仅从第一个表中请求字段可以正常工作。

$conditions = array('fields' => array('Zone.id','Zone.title','Zone.color'));

这些情况会导致问题,因为......原因?

$conditions = array('fields' => 
array('Zone.id','Zone.title','Zone.color','Region.id','Region.title'));

基本查询,这就是我使用条件的方式。

$result = $this->Zone->find('all',$conditions);

SQL 蛋糕正在生成:

SELECT "Zone"."id" AS "Zone__id", "Zone"."title" AS "Zone__title", "Zone"."color" 
AS "Zone__color", "Region"."id" AS "Region__id", "Region"."title" AS "Region__title" 
FROM "public"."zones" AS "Zone" WHERE 1 = 1

为什么 Cake 假设 Region.fields 是 Zones 模型的一部分?为什么这没有按预期工作?

4

1 回答 1

2

执行此操作时,您需要在 find 中包含这两个模型。这是我确定的工作示例:

$conditions = array('fields' => 
array('Zone.id','Zone.title','Zone.color','Region.id','Region.title'));

$this->Zone->Region->find('all',$conditions);
于 2013-08-06T15:35:40.817 回答