如何在 TYPO3 中获取 fe_groups 的数组?
How to get an array of fe_groups in TYPO3?
我是 TYPO3 的新手,目前很多事情都令人困惑,尤其是如果您依赖 ExtBase,数据建模和数据获取实际上是如何工作的。
我想要实现的是从 fe_groups
table 获取一组记录并将其传递到我的 Fluid 视图中并在 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());
这很有魅力!
但我不知道如何对从数据库中获取的动态内容做类似的事情tables。
所以,基本上,我只需要一种方法将项目从 fe_groups
table 传递到我的视图并呈现它们。
您必须从 Extbase 注入 FrontenduserGroups 的存储库
/**
* @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
中引用的class
storagePid
需要设置为包含后端用户组的文件夹的 UID
我是 TYPO3 的新手,目前很多事情都令人困惑,尤其是如果您依赖 ExtBase,数据建模和数据获取实际上是如何工作的。
我想要实现的是从 fe_groups
table 获取一组记录并将其传递到我的 Fluid 视图中并在 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());
这很有魅力!
但我不知道如何对从数据库中获取的动态内容做类似的事情tables。
所以,基本上,我只需要一种方法将项目从 fe_groups
table 传递到我的视图并呈现它们。
您必须从 Extbase 注入 FrontenduserGroups 的存储库
/**
* @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
中引用的class
storagePid
需要设置为包含后端用户组的文件夹的 UID