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


cakephp select list showing ids instead of text

我正在使用cakehp1.3生成一个表单,我正在使用hasOne和belongsTo relationship 创建一个选择列表

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,我知道这不是cakeHP的错,但我需要知道解决方案

请帮忙。

p.S如果我不清楚这个问题,请告诉我

您需要在类别模型中定义displayField属性,以便CakePHP能够正确地确定哪个字段显示为标签。您的类别模型中的此代码将为您修复它:

var $displayField = 'category_name';

或者,将category_name字段重命名为"name"或"title"(我会这样做,很明显,类别表中的"name"字段将是类别的名称)。

如有疑问,请阅读手册:

3.7.3.1.4查找("列表")

当调用find('list')时,传递的字段用于确定什么应该用作数组键、值,以及根据什么对结果进行分组。默认情况下,模型的主键用于键,显示字段(可以使用模型属性displayField配置)用于值。