这是当前在我的表中设置的displayField
:
$this->setDisplayField('id');
我需要它是:
$this->setDisplayField('name');
但是,我的数据库表有双语字段,例如name_en
和name_fr
,其中我使用getter在实体中填充name
:
protected $_virtual = ['name'];
protected function _getName()
{
if (Configure::read('wetkit.lang') == 'fr'){
return $this->_properties['name_fr'];
} else {
return $this->_properties['name_en'];
}
}
在烘烤过程中,实体中有虚拟字段的烘烤表是否应该将displayField设置为name ?
也许getter在表烘烤过程中不可用,以确定displayField和默认值为
id
?我是否必须修改
table.twig
文件以相应地输出,取决于我的结构具有name_en
和name_fr
?
最后修改了table.twig
文件:
{%- set setBilingualDisplayField = false %}
{%- for bf in bilingualFields %}
{%- if bf.name == 'name' %}
{%- set setBilingualDisplayField = true %}
{%- endif %}
{%- endfor %}
{% if setBilingualDisplayField %}
$this->setDisplayField('name');
{% else %}
$this->setDisplayField('{{ displayField }}');
{% endif %}