是否可以通过TCA使记录字段自动完成?

时间:2019-04-04 14:29:31

标签: extbase typo3-8.x

我想知道是否有可能在自定义扩展的自定义记录中创建某些字段,以在不使用调度程序任务或钩子的情况下自动从其他字段获取和保存数据?

我正试图从1:n关系中获取section与自定义news;

一个section可以添加多个news,但是没有news拥有有关其父级section的信息。

目标是在section记录中自动保存有关news的信息。

我只是通过使用group类型的字段来进行尝试,但是当然,它只会显示我可以放入该字段中的内容。

以下示例:

域/型号:

/**
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\XXX\XXX\Domain\Model\Section>
 * @lazy
 */
protected $sections;

[...]

/**
 * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\XXX\XXX\Domain\Model\Section>
 * @return void
 */
 public function setSection( $section)
{
    $this->section = $section;
}

/**
 * @return  \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\XXX\XXX\Domain\Model\Section>
 */
public function getSections()
{
    return $this->sections;
}

/**
 * @param \XXX\XXX\Domain\Model\Section $sections
 * @return void
 */
public function addSection(\XXX\XXX\Domain\Model\Section $sections)
{
    $this->sections->attach($sections);
}

/**
 * @param \XXX\XXX\Domain\Model\Section $sections
 * @return void
 */
public function removeSection(\XXX\XXX\Domain\Model\Section $sections)
{
    $this->sections->detach($sections);
}

TCA:

    'xxx_newsframework_sections' => [
        'label' => $localLang . 'tx_news_domain_model_news.xxx_newsframework_sections',
        'config' => [
            'type' => 'group',
            'internal_type' => 'db',
            'allowed' => 'tx_xxx_domain_model_section',
            'MM' => 'tx_xxxnewslettersystem_section_news_mm',
            'MM_table_where' => 'AND tx_xxx_news_mm.news_id=###THIS_UID###',
            'MM_oppositeUsage' => [],
            'size' => 10,
            'fieldWizard' => [
                'recordsOverview' => [
                    'disabled' => true,
                ],
            ],
        ],
    ],

上面字段的ext_tables.sql

xxx_newsframework_sections int(11) DEFAULT '0' NOT NULL

0 个答案:

没有答案