Mam problem z następującym problemem.Typo3 foreign_table & foreign_table_where in TCA
Mam dwie tabele bazy danych, "Książki" i "Kategoria". Dostaję wszystkie dane z "książek" -tabeli przez Sysfolder w widoku listy widoków do edycji, sortowania i kontrolowania ich.
Chciałbym, aby w widoku listy znajdowała się również nazwa kategorii, do której należy książka.
W tabeli "Książki" znajduje się klucz obcy Field "category_id"
, który definiuje to, do której kategorii należy Księga. Próbowałem przez to "category_id"
, aby uzyskać nazwę kategorii w widoku listy książek.
Kiedy definiować w TCA['books']
że category_id
jak:
'category_id' => array (
'exclude' => 0,
'label' => 'Cat name',
'config' => array (
'type' => 'select',
'foreign_table' => 'category',
'foreign_table_where' => 'AND category.id=###REC_FIELD_category_id###',
'eval' => 'int',
'checkbox' => '0',
'default' => 0
)
),
Łączy Książki i kategorie za pomocą category_id
(w książkach tabeli) i uid
(w kategorii stole).
Nie tak jakbym chciał, aby połączyć je przy użyciu id_kolekcji (w książce-stole) i id (w tabeli kategorii). Ten id jest identyfikatorem kategorii i może być inny niż uid.
Czy robię coś źle, czy też Typo3 w jakiś sposób automatycznie tworzy to "połączenie" z zagranicznymi tabelami uid
. ? Czy jest jakiś sposób, aby uzyskać to tak, jak bym chciał?
Dzięki za odpowiedź. Próbowałem tego w ten sposób. Zrobiłem plik klasy w folderze typo3conf/ext/MY_EXTENSION. – Andrew
Dzięki za odpowiedź. Próbowałem tego w ten sposób. Zrobiłem plik klasy w folderze typo3conf/ext/MY_EXTENSION. W tym pliku stworzyłem klasę metodą. Zawarłem klasę w ext_tables.php I na końcu ustawiłem itemsProcFunc w config dla pola kategorii na moją metodę. Czy zrozumiałem teraz coś nie tak. Próbowałem uzyskać odpowiedź, wykonując proste echo i wyjście w mojej metodzie, ale nic się nie dzieje, gdy ładuję widok listy w Backend, pojawia się jak wcześniej. – Andrew
Jeśli sprawdzasz tylko za pomocą 'echo', upewnij się, że naprawdę nie otrzymujesz danych wyjściowych. Zauważ, że wyjście echa może być ukryte za polami formularza i że nie będzie ono na początku kodu HTML, a także upewnij się, że sprawdzasz prawą ramkę. Lepiej sprawdzić, modyfikując '$ PA ['items']' jak w kroku 2. Jeśli naprawdę nic nie dostałeś, sprawdź, czy nie popełniłeś żadnego błędu - czy klasa jest zawarta i że ustawiłeś 'itemsProcFunc' do właściwej klasy i metody. – tmt