我有以下型号:
FilePackage
- ID
- Name
FileGroup
- ID
- Name
- filePackage
File
- ID
- Path
- fileGroup
如果我想获取Group i的所有文件,我目前会进行一些查询,例如。
$groups = $this->fileGroupRepository->findByPackage($package);
foreach($groups as $group){
$files = $this->fileRepository->findByFilegroup($group);
foreach($files as $file){
// Handle it...
}
}
是否可以直接访问这些?喜欢 $ groups = $ this-> fileGroupRepository-> findByPackage($ package); foreach($ groups as $ group){ $基团 - >的GetFiles(); }
之前没有查询所有内容并直接在模板中使用
答案 0 :(得分:1)
根据TCA中的配置,Extbase应该负责获取所有相关对象。
例如:
<强>文件组强>
'files' => array(
'label' => 'LLL:EXT:foo_myext/Resources/Private/Language/locallang_db.xml:tx_foomyext_domain_model_filegroup.files',
'l10n_mode' => 'exclude',
'config' => array(
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'tx_foomyext_domain_model_file',
'foreign_table' => 'tx_foomyext_domain_model_file',
'MM' => 'tx_foomyext_filegoup_file_mm',
'maxitems' => 10,
'minitems' => 0,
'size' => 10,
),
),
文件强>
'filegroups' => array(
'exclude' => 0,
'label' => 'LLL:EXT:tw_foomyext/Resources/Private/Language/locallang_db.xml:tx_foomyext_domain_model_file.filegroups',
'config' => array(
'type' => 'select',
'foreign_table' => 'tx_foomyext_domain_model_filegroup',
'foreign_table_where' => 'ORDER BY tx_foomyext_domain_model_filegroup.id',
'MM' => 'tx_foomyext_filegroup_file_mm',
'MM_opposite_field' => 'files',
'size' => 5,
'minitems' => 0,
'maxitems' => 10,
)
),
在您的模型中,这些属性应表示为ObjectStorage。
如果您选择文件组,Extbase将自动为您获取所有相关文件,您将可以访问它们。