TYPO3 TCA类型在FLUID中选择static_info_tables?

时间:2016-02-23 09:38:29

标签: typo3 fluid typo3-7.6.x

我用于TYPO3 TCA后端国家选择器,类型选择和EXT:static_info_tables // static_info_tables_de

它在后端工作完美。我这里有一个国家 - 选择:

'land' => array(
    'exclude' => 1,
    'label' => 'Land',
    'displayCond' => 'EXT:static_info_tables_de:LOADED:true',
    'config' => array(
        'type' => 'select',
        'renderType' => 'selectSingle',
        'items' => array(
            array('', 0)
        ),
        'foreign_table' => 'static_countries',
        'allowNonIdValues' => TRUE,
        'foreign_table_where' => 'ORDER BY static_countries.cn_short_de',
        'itemsProcFunc' => 'SJBR\\StaticInfoTables\\Hook\\Backend\\Form\\FormDataProvider\\TcaSelectItemsProcessor->translateCountriesSelector',
        //'itemsProcFunc_config' => array(
        //    'indexField' => 'cn_short_de',
        //),
        'size' => 1,
        'minitems' => 0,
        'maxitems' => 1,
        'default' => '54', // Default Germany value="54"
        'eval' => 'required'
    )
),

FE调试输出= land => '54' (2 chars) 但是,我不知道,我如何更改国家/地区名称中的ID?

这是模型 - 代码:

/**
 * Land
 *
 * @var string
 *
 */
protected $land = '';

/**
 * Returns the land
 *
 * @return string $land
 */
public function getLand() {
    return $this->land;
}

/**
 * Sets the land
 *
 * @param string $land
 * @return void
 */

public function setLand($land) {
    $this->land = $land;
}

我为FE Select-Form找到了这个例子,但我需要正确的“Country” - Name不是FORM-Selector。 https://docs.typo3.org/typo3cms/extensions/static_info_tables/ExtbaseDomainModel/UsingTheModel/AddingACountrySelectFieldToAForm/Index.html

我想,我不需要“字符串”..我需要这个:

@param \SJBR\StaticInfoTables\Domain\Repository\CountryRepository $land

感谢您的帮助! 塞巴斯蒂安

1 个答案:

答案 0 :(得分:2)

您最想要做的是在您的域模型中建立适当的关系。您已经在TCA中设置了关系,因此请调整您的模型:

/**
 * @var \SJBR\StaticInfoTables\Domain\Model\Country
 */
protected $land = '';

/**
 * @return \SJBR\StaticInfoTables\Domain\Model\Country $land
 */
public function getLand() {
    return $this->land;
}

/**
 * @param \SJBR\StaticInfoTables\Domain\Model\Country $land
 * @return void
 */  
public function setLand(\SJBR\StaticInfoTables\Domain\Model\Country $land) {
    $this->land = $land;
}

静态信息表扩展已经告诉extbase如何将数据库表映射到\SJBR\StaticInfoTables\Domain\Model\Country模型。 因此,在此更改后,您应该能够获取该国家/地区的名称。

$model->getLand()->getOfficialNameLocal();

您可以查看模型以查看现在可以使用的吸气剂。