2012-03-22 56 views
0

我有一個簡單的發佈系統,可以將特殊字段添加到博客文章中(類似於wordpress中的custom fields)。這裏是我的模型:自動加載相關聯的行

現在,當我加載Node模型factory(),我沒有關聯到我的NodeFields直接訪問;我需要使用$node->fields->find_all()。我想知道 - 是否有可能在從數據庫查詢Node時自動加載相關字段?

比方說,我想用這種方式:

<?php 
$node = ORM::factory('node'); 
$nodes = $node->find(1); 

// as you can see, i don't want to use separated query for getting `fields`. 
foreach($node->fields as $field) 
{ 
    echo $field->content; 
} 
?> 

我已經看到了,我可以使用$_load_with模型屬性或->with('fields')但是這兩個方案將返回空的結果。你有什麼建議嗎? :) 提前致謝!

+0

'with()'僅適用於一對一的關係,所以您可以自動加載'$ node-> category',但不能'$ node-> fields'。 – biakaveron 2012-03-22 20:51:41

+0

並且完全沒有辦法自動加載一對多關係? – mbajur 2012-03-22 20:52:31

+0

您可以在Node模型中擴展'find()'方法,因此它將加載與主要行的所有關係。但我願意使用2個分離的查詢(易於管理,易於緩存等)。 – biakaveron 2012-03-23 18:30:35

回答