В моих плагинах Typo3 я хочу дать администратору возможность выбирать некоторые элементы из выпадающего списка, содержимое которого хранится в базе данных «средств», используя репозиторий «СредстваRepository.php».
По умолчанию система использует UID в качестве значения каждого элемента.Поэтому я хочу использовать пользовательскую функцию, чтобы гарантировать, что метка и значение каждого элемента в раскрывающемся списке использует то, что я хочу.
Я использую flexform и тег itemsProcFunc для вызова моей пользовательской функции.Пользовательская функция находится в контроллере с именем «FacilitiesController.php»
. Контроллер использует инъекцию для ссылки на репозиторий, например:
/* @var \MyCompany\MyPlugin\Domain\Repository\FacilitiesRepository
* @inject
*/
protected $facilitiesRepository;
Все функции в контроллере успешно подключаются к репозиторию., поэтому я знаю, что это работает.
Я пытаюсь использовать функцию репозитория findAll ().
Моя пользовательская функция успешно вызывается из flexform, однако всякий раз, когда она ссылается на предоставляемый объект средств, репозитарийошибка: вызов функции-члена findAll () для null.
Я попытался заменить findAll на функцию test () в хранилище, но я все еще получаю: вызов функции-члена test () для null.
Нуль всегда возвращается.
Я пытался ввести репо другими способами (я думаю, что есть 3 способа), но результат тот же.
Вот моя пользовательская функция:
public function findAllForFlexForm($config){
$categories = $this->facilitiesRepository->findAll(); // <--here is the problem
// create option list
$optionList = array();
foreach($categories as $key=>$item){
$label = $item['id'];
$value = $item['titel_de'];
$optionList[] = array(0 => $label, 1 => $value);
}
// return config
$config['items'] = array_merge($config['items'], $optionList);
return $config;
}
Есть ли какая-то причина, по которой мое хранилище объектов не распознается?Если бы я запустил эту функцию из FE, она вернулась бы правильно.