cakephp中的自定义标签文本

cakephp中的自定义标签文本,cakephp,label,Cakephp,Label,我想从数据库表中获取两个字段值,并将它们组合在一起,并将其用作标签中的显示文本。我还想在表中创建另一个字段值作为标签id AgeCat表存储不同的年龄类别。表定义是 age_cat_id ---> primary key range_start range_end e、 g: 我想要的是将标签文本设置为“range\u start”到“range\u end” e、 g:‘18至24’ 标签id是年龄类别id 设置标签文本格式以如上所示显示的正确方式是什么?我检索了AgeCat表的所有记

我想从数据库表中获取两个字段值,并将它们组合在一起,并将其用作标签中的显示文本。我还想在表中创建另一个字段值作为标签id

AgeCat表存储不同的年龄类别。表定义是

age_cat_id ---> primary key
range_start
range_end
e、 g:

我想要的是将标签文本设置为“range\u start”到“range\u end” e、 g:‘18至24’

标签id是年龄类别id

设置标签文本格式以如上所示显示的正确方式是什么?我检索了AgeCat表的所有记录,并使用find(all)将它们存储在字符串数组($AgeCat)中。我无法从该数组中检索值,然后按照上述方式格式化并设置为标签文本。请建议是否有更好的方法来做到这一点

这样做的目的是按照“范围从开始到范围结束”的格式显示AgeCat表中的每条记录,但将其值设置为相应的年龄类别id。 例如:18到24使用某些表单元素显示,但值应为1。这就像有一个带有自定义字符串的下拉列表,但每个字符串都链接到一个唯一的值。因此,一旦选择了一个选项,就会传递值,而不是字符串

如果标签不够好,那么哪个表单元素适合于此

虚拟字段:

注意:根据Cakephp惯例,主键应命名为id

编辑:请看这里:

在控制器中,如下所示:

$cat_date=$this->Model->find('list',array('fields'=>array('id','cat_name')));

使用$cat_date,选择包含所需值的数组。

谢谢您的回答。对不起,我不能很快给你回电话。当我这样做时,我得到一个错误,在字段列表中显示未知列
cat_date
。我现在理解了虚拟字段的概念,但这个错误让我再次陷入困境。如何使用foreach循环的标签来实现这一点。并将cat_id保存为标签的id。
public $virtualFields = array(
'cat_date' => 'CONCAT(AgeCat.range_start, " to ", AgeCat.range_end)'
);
echo $this->Form->select('id', $cat_date)
$cat_date=$this->Model->find('list',array('fields'=>array('id','cat_name')));