cakephp选择列表显示ids而不是文本

时间:2011-06-02 13:10:58

标签: php cakephp cakephp-1.3

我正在使用cakephp 1.3生成表单我使用hasOne和belongsTo关系创建选择列表

my models: image, category

类别有很多图片

图片所属类别

类别表有两列id and category_name

我正在做

$this->set('categories', 
           $this->Image->Category->find(
                                        'list',
                                         array( 'order' => 'category_name ASC' )
                                       )
          ); //to generate the select list

到目前为止这么好,只剩下一个问题了,生成的选择列表显示了类别的id而不是category_name作为选项文本,我知道这不是cakePHP的错,但我需要知道解决方案

请帮助。

如果我不清楚这个问题请告诉我

2 个答案:

答案 0 :(得分:6)

您需要在类别模型中定义displayField属性,以便CakePHP可以正确地确定要显示为标签的字段。您的类别模型中的此代码将为您解决此问题:

var $displayField = 'category_name';

或者,将category_name字段重命名为'name'或'title'(我会这样做,显然类别表中的'name'字段将成为该类别的名称。)

答案 1 :(得分:2)

如有疑问,请阅读手册:

3.7.3.1.4 find('list')

  

调用find('list')时,传递的字段用于确定应该用作数组键,值以及可选择的结果组合。默认情况下,模型的主键用于键,显示字段(可使用模型属性displayField配置)用于值。