У меня есть расширение на основе Extbase для Typo3, которое имеет иерархическую модель данных. Мне пришлось добавить дополнительный слой к этой модели, то есть исходная структура была Project contains multiple items
. Теперь у меня есть Project contains multiple sub-projects
и Sub-project contains multiple items
. Все моделируется с использованием таблиц MM-отношений и работает в бэкэнд. Я могу добавлять, удалять, сортировать суб-проекты и элементы.Сообщение «Вы никогда не должны видеть это предупреждение». в Extbase-based Typo3 extension
Однако шаблон жидкости не показывает ничего, и если я прохожу например, суб-проекта в t3lib_utilities_debug::Debug
, я получаю
Вы никогда не должны видеть это предупреждение. Если вы это делаете, вы, вероятно, использовали функции массива PHP , такие как current() на Tx_Extbase_Persistence_ObjectStorage. Чтобы получить первый результат, , вы можете использовать методы rewind() и current().
при печати ObjectStorage
для товаров. Я предполагаю, что MM-отношение, которое я добавил, как-то сломалось, но я не могу понять, как это сделать. Кроме того, кажется, что метод домена __construct
не называется (я добавил отладочный вывод, который не печатается).
Перечисление работает, если я передаю результат вызова findAll
репозитория, но он не работает для моих отфильтрованных вызовов (которые работали до того, как я добавил дополнительный слой). Метод фильтрации выглядит как, например, для элемента
public function findBySubProject(SubProject $p) {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectStoragePage(false);
$query->matching($query->equals('subproject', $p));
return $query->execute();
}
Как я уже говорил, запрос дает результаты, но они как-то сломана WRT. их отношений.
Любые идеи, как исправить это?
Пожалуйста, задайте вопрос как можно скорее и закройте его. –