Таблица с заказами является главной по отношению к покупкам в заказе. При удалении заказа должны удаляться связанные покупки.
В результате получается такая схема:
Вроде бы, напутано с «cardinality».
Должно быть наоборот: composite — «many», aggregate — «one».
В общем после генерации схемы вот такой код выдавал fatal error:
//получаем объект заказа
$order = $modx->getObject('GarderobOrders', array('id' => 7 ));
//получаем связанные объекты покупок, тут и вылезает ошибка
$purchases = $order->getMany('GarderobPurchases');
//Выводим
foreach ($purchases as $purchase){
print_r($purchase->toArray());
}
Если руками поправить значения «cardinality» в файлах garderoborders.map.inc.php и garderobpurchases.map.inc.php, то все отрабатывает корректно, без ошибок. Выводятся покупки из заказа с id=7.
Собственно вопрос: это я туплю и что-то не так делаю или в компоненте действительно ошибка?)
У тебя при композиционной связи генерируется owner=owner, из-за этого не работает addMany().
Эту штуку тоже подправить надо
Вот для примера натыкал всевозможных связей:
Правда, кажется, в нем есть ошибка, поправьте, если что-то не так делаю, или что-то не понял.
Опишу проблему и порядок действий.
Есть две таблицы:
Таблица с заказами является главной по отношению к покупкам в заказе. При удалении заказа должны удаляться связанные покупки.
В результате получается такая схема:
Вроде бы, напутано с «cardinality».
Должно быть наоборот: composite — «many», aggregate — «one».
В общем после генерации схемы вот такой код выдавал fatal error:
Если руками поправить значения «cardinality» в файлах garderoborders.map.inc.php и garderobpurchases.map.inc.php, то все отрабатывает корректно, без ошибок. Выводятся покупки из заказа с id=7.
Собственно вопрос: это я туплю и что-то не так делаю или в компоненте действительно ошибка?)