2013-08-06 196 views
1

我有兩個模型,區域和區域。我無法弄清楚爲什麼Cake的find不允許我指定相關表中的字段。CakePHP找到相關模型的字段

這些條件只從第一個表中請求字段正常工作。

$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 

爲什麼蛋糕假設Region.fields是區域模型的一部分?爲什麼不按預期工作?

+0

您的模特與你的模特相干?在您的Zone模型中,您的區域是作爲belongsTo,hasOne還是hasMany添加的? – Derek

回答

2

當你這樣做,你需要在查找包括兩個模型。這裏是我剛剛解決的工作示例:

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

$this->Zone->Region->find('all',$conditions); 
+0

這是由什麼生成的SQL? –