Я использую Datamapper ORM 1.8.2.1 с CodeIgniter 2.1.0, и у меня возникают проблемы с доступом к вновь добавленным связанным объектам из родительского элемента.
У меня есть родительский класс, подобный этому:
class Virement extends DataMapper
{
var $has_many = array("lignevirement");
// ...
}
и дочерний класс, подобный следующему:
class LigneVirement extends DataMapper
{
var $has_one = array("virement");
// ...
}
В пользовательском коде я создаю экземпляр этого родителя и добавляю несколько дочерних объектов:
$vrt = new Virement; // and do some inits on properties.
$vrt->save();
$lili = new LigneVirement; // do some inits also on properties.
$lili->save();
$vrt->save($lili);
$lili = new LigneVirement; // do some inits also on properties.
$lili->save();
$vrt->save($lili);
// ...
Когда я затем считаю сразу последобавленные дочерние объекты, я получаю 0:
echo $vrt->lignevirement->count();
... тогда как при просмотре таблицы базы данных видно, что родительская запись была добавлена , все дочерние элементы записи были добавлены , и они правильно связаны с родительской записью.
Кстати, когда я пытаюсь обойти это, я получаю правильное количество дочерних строк:
$vrt = new Virement($vrt->id);
Так что может быть не так с моим кодом выше?