我用于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
感谢您的帮助! 塞巴斯蒂安
答案 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();
您可以查看模型以查看现在可以使用的吸气剂。