TLDR: у меня есть две модели с MM-отношениями с разными StoragePids, определенными с помощью констант в моем шаблоне.Я не знаю, как отфильтровать результаты при запросе моих данных относительно моих сконфигурированных storagePids для моей связанной модели.
Длинная версия: в моей установке с несколькими сайтами TYPO3 у меня есть две модели: «Person» и «PersonalInformation»,Эти модели имеют отношение MM, определенное через TCA.«Персона» содержит все общие данные, хранящиеся в глобальном RecordStore.«PersonalInformation» содержит редактируемые данные, т.е. изображения, которые можно редактировать для каждого сайта отдельно.Эти данные хранятся в отдельных RecordStores для каждого сайта.
Это означает, что в каждом шаблоне сайта-> Константы, которые я определил extension-storagePid, т.е.: $ plugin.tx_myext.persistence.storagePid = 1на всех сайтах одинаково, чтобы иметь возможность доступа к одному и тому же RecordStore с каждого сайта.
RecordStore для «PersonalInformation» должен быть разным для каждого сайта.Так что мой setup.txt моего расширения выглядит так:
persistence {
storagePid = {$plugin.tx_myext.persistence.storagePid},
{$plugin.tx_tx_myext.persistence.personalInformationStoragePid}
classes {
TYPO3\T3myext\Domain\Model\PersonalInformation {
newRecordStoragePid = {$plugin.tx_myext.persistence.personalInformationStoragePid}
}
}
}
И в моем шаблоне корневого сайта в разделе Константы я определил plugin.tx_myext.persistence.personalInformationStoragePid для каждого сайта отдельно.
Мой TCA MM-Отношение, определенное для PersonalInformation:
'person' => array(
'exclude' => 1,
'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:tx_myext_domain_model_person',
'config' => array(
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_myext_domain_model_person',
'foreign_table_where' => 'AND 1=1 ORDER BY last_name ASC',
'MM' => 'tx_myext_person_personalinformation_mm',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 1,
'minitems' => 0,
'multiple' => 0,
),
),
Мое отношение TCA, определенное для персоны:
'personalinformation' => array(
'exclude' => 1,
'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:tx_myext_domain_model_person.personalinformation',
'config' => array(
'type' => 'none',
'readonly' => 1,
'foreign_table' => 'tx_myext_domain_model_personalinformation',
'MM_opposite_field' => 'personalinformation',
'MM' => 'tx_myext_person_personalinformation_mm',
'foreign_table_where' => 'AND tx_myext_domain_model_personalinformation.pid=###The-PID-defined-in-my-site-Const-for-personalInformationStoragePid###'
),
),
Если я var_dump моей персоны во внешнем интерфейсе, все Person.PersonaИнформация о всех хранилищах записей.Но мне показывать только PersonalInformation Records текущего сайта.