Автоматически загружать связанные строки - PullRequest
0 голосов
/ 23 марта 2012

У меня есть простая система отправки сообщений с возможностью добавления специальных полей к сообщениям в блоге (что-то вроде custom fields в WordPress).Вот мои модели:

<?php
# Node.php
class Model_Node extends ORM
{
    protected $_belongs_to = array('category' => array());
    protected $_has_one    = array('path' => array());
    protected $_has_many   = array('fields' => array());
    (...)
}

# Field.php
class Model_Field extends ORM
{
    protected $_belongs_to = array('node' => array());
    (...)
}
?>

На данный момент, когда я загружаю Node модель с factory(), у меня нет прямого доступа к Fields, связанному с моим Node;мне нужно использовать $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;
}
?>

I 'Я видел, что я могу использовать $_load_with свойство модели или ->with('fields'), но эти два решения возвращают пустой результат.Есть ли у вас какие-либо советы для меня?:) Заранее спасибо!

1 Ответ

0 голосов
/ 24 марта 2012

Вот мое обновление для вашего find() расширения: http://pastebin.com/T5dsyNPw. Не проверял его, но оно должно работать.

...