Как получить массив fe_groups в TYPO3?

Я довольно плохо знаком с TYPO3, и в настоящий момент многие вещи сбивают с толку, особенно то, как на самом деле работает моделирование данных и выборка данных, если вы полагаетесь на ExtBase.

Я хочу добиться того, чтобы получить массив записей из fe_groups таблицы и передать его в моем представлении жидкости и визуализировать эти элементы в f:form.select поле ввода.

До сих пор я ничего не пробовал, так как понятия не имею, откуда и как это начать.

Еще одна вещь, которую я успешно выполнил, — это передать жестко запрограммированный массив элементов объекта в мое представление и успешно их визуализировать, например так:

<f:form.select
class="form-control"property="taskTypes"options="{taskTypes}"optionValueField="name"optionLabelField="value"id="taskTypes" />

Это метод в моем контроллере, который заполняет taskTypes массив:

private function getTaskTypes() {
$task_type_names = [
' - Task Types - ',
'New client',
'Maintenance',
];
$task_types = [];

foreach($task_type_names as $i => $task_type_name) {
$task_type = new \stdClass();
$task_type->key = $i;
$task_type->value = $task_type_name;

$task_types[] = $task_type;
}

return $task_types;
}

А затем простое назначение вида в действии контроллера:

$this->view->assign('taskTypes', $this->getTaskTypes());

И это работает как шарм!

Но я не знаю, как сделать нечто подобное с динамическим контентом, извлекаемым из таблиц базы данных.

Так что, в принципе, мне просто нужен способ передать предметы из fe_groups таблицы на мой взгляд и визуализировать их.

1

Решение

Вам нужно будет добавить репозиторий для групп Frontenduser из Extbase

 /**
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository
* @inject
*/
protected $feUserGroupRepository;

в своем методе вы можете использовать этот репозиторий для получения данных из базы данных

$feUserGroup = $this->feUserGroupRepository->findAll();
$userByUid = $this->feUserGroupRepository->findByUid(12);

Хранилище также предоставляет больше ->findBy* методы.
Вот таблица, которая может помочь вам http://lbrmedia.net/codebase/Eintrag/extbase-query-methods/

Замечания:

  • @inject в комментарии к документу фактически анализируется Extbase и загружает класс, на который ссылаются в @var
  • storagePid должен быть установлен в UID папки, которая содержит группы пользователей в серверной части
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]