Я довольно плохо знаком с 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
таблицы на мой взгляд и визуализировать их.
Вам нужно будет добавить репозиторий для групп 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 папки, которая содержит группы пользователей в серверной части Других решений пока нет …