Typo3 8.7.10 Flexform itemsProcFunc, пользовательская функция контроллера, репозиторий имеет значение NULLPhp

Кемеровские программисты php общаются здесь
Anonymous
Typo3 8.7.10 Flexform itemsProcFunc, пользовательская функция контроллера, репозиторий имеет значение NULL

Сообщение Anonymous »

В моих плагинах Typo3 я хочу предоставить администратору возможность выбирать некоторые элементы из раскрывающегося списка, содержимое которых хранится в базе данных «услуги», используя репозиторий «FacilitiesRepository.php».

По умолчанию система использует UID в качестве значения каждого элемента. Поэтому я хочу использовать пользовательскую функцию, чтобы гарантировать, что и метка, и значение каждого элемента в раскрывающемся списке используют то, что я хочу.

Я использую гибкую форму, и " itemsProcFunc» для вызова моей пользовательской функции.
Пользовательская функция находится в контроллере под названием «FacilitiesController.php».

Контроллер использует inject для ссылки на репозиторий, например:

Код: Выделить всё

 /* @var \MyCompany\MyPlugin\Domain\Repository\FacilitiesRepository
* @inject
*/
protected $facilitiesRepository;
Все функции контроллера успешно подключаются к репозиторию, поэтому я знаю, что он работает.

Я пытаюсь использовать функцию репозитория findAll().

Моя пользовательская функция успешно вызывается из гибкой формы, однако всякий раз, когда она ссылается на объектовRepository, она выдает ошибку: вызов a функция-член findAll() для значения null.

Я пытался заменить findAll функцией test() в репозитории, но все равно получаю: Вызов функции-члена test() при нулевом значении.

Нуль всегда возвращается.

Я пытался внедрить репо другими методами (я считаю, что есть 3 способа), но результат тот же.

Вот моя пользовательская функция:

Код: Выделить всё

public function findAllForFlexForm($config){

$categories = $this->facilitiesRepository->findAll();  // $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, она вернулась бы правильно.

Подробнее здесь: https://stackoverflow.com/questions/528 ... itory-is-n

Вернуться в «Php»