0

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

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

age_cat_id ---> primary key
range_start
range_end

例如:

age_cat_id=>1
range_start=>18
range_end=>24

我想要的是将标签文本设置为“range_start”到“range_end”,例如:“18 到 24”

并且标签 id 是 age_cat_id。

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

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

如果标签不够好,什么表单元素适合这个?

4

1 回答 1

2

虚拟字段:cakephp 文档。

public $virtualFields = array(
'cat_date' => 'CONCAT(AgeCat.range_start, " to ", AgeCat.range_end)'
);

PS:根据 Cakephp 的约定,主键应该命名为 id。

编辑:看看那里:表单助手

echo $this->Form->select('id', $cat_date)

在控制器中是这样的:

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

$cat_date 是一个包含选择中所需值的数组。

于 2012-07-30T15:20:50.553 回答