Я хочу прочитати вміст tt_address і роздрукувати їх, відсортовані за sys_categories у моєму розширенні extbase / fluid.
Я зіставив обидві таблиці в typoscript, створив моделі, контролери та сховища для обох і тому я можу друкувати обидві таблиці без проблем.
Тим не менш, мені потрібно друкувати тільки адреси, які відповідають певній категорії (залежить від сторінки), але я не можу змусити її працювати.
Згідно з деякими дослідженнями, необхідно мати можливість завантажувати їх і отримувати доступ до них у шаблоні рідини
<f:for each="{cats}" as="cat">
<f:for each="{cat.items}" as="adr">{adr}</f:for>
</f:for>
Але якщо я покажу їх через опцію налагодження, то немає адресів, прикріплених до масиву cat - не дивно, що ніхто не відображається.
Я створив TCAs для обох таблиць лише з визначенням стовпців M: M (категорії для tt_адреси та елементи для sys_categories), а в моделі включив наступне:
/**
* Addresses
*
* @var TYPO3CMSExtbasePersistenceObjectStorage<VendorMyextDomainModelAddress>
*/
protected $addresses;
/**
* Adds a Address
*
* @param VendorMyextDomainModelAddress $address
* @return void
*/
public function addAddress(VendorMyextAddressDomainModelAddress $address) {
$this->addresses->attach($address);
}
/**
* Removes a Address
*
* @param VendorMyextDomainModelAddress $addressToRemove The Address to be removed
* @return void
*/
public function removeAddress(VendorMyextDomainModelAddress $addressToRemove) {
$this->addresses->detach($addressToRemove);
}
/**
* Returns the Addresses
*
* @return TYPO3CMSExtbasePersistenceObjectStorage<VendorMyextDomainModelAddress> $addresses
*/
public function getAddresses() {
return $this->addresses;
}
/**
* Sets the Addresses
*
* @param TYPO3CMSExtbasePersistenceObjectStorage<VendorMyextDomainModelAddress> $addresses
* @return void
*/
public function setAddresses(TYPO3CMSExtbasePersistenceObjectStorage $addresses) {
$this->addresses = $addresses;
}
і, звичайно, навпаки в адресній моделі.
Де провина, що я відсутній? Чи можна навіть використовувати відносини M: M на зіставлених таблицях? Чи потрібен мені повний TCA?
Будь ласка, допоможіть. Я намагаюся це відчайдушно починати з одного тижня.
Спасибі заздалегідь!
PS: Я хочу використовувати таблицю "sys_category_record_mm", звичайно ж.
Відповіді:
2 для відповіді № 1Ви додали категорії до таблиці tt_address with makeCategorizable()
?
Це додасть вам правильний TCAtt_address, так що ви не повинні турбуватися про raltaions ММ. Потім ви також можете просто отримати всі необхідні записи на основі певних параметрів. у вашому випадку, категорія вашої сторінки. Крім того, ви можете створити колекції категорій, щоб підштовхнути ваш погляд.
тут все пояснено: https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Categories/Index.html