我正在使用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的错,但我需要知道解决方案
请帮助。
如果我不清楚这个问题请告诉我
答案 0 :(得分:6)
您需要在类别模型中定义displayField属性,以便CakePHP可以正确地确定要显示为标签的字段。您的类别模型中的此代码将为您解决此问题:
var $displayField = 'category_name';
或者,将category_name字段重命名为'name'或'title'(我会这样做,显然类别表中的'name'字段将成为该类别的名称。)
答案 1 :(得分:2)
如有疑问,请阅读手册:
调用find('list')时,传递的字段用于确定应该用作数组键,值以及可选择的结果组合。默认情况下,模型的主键用于键,显示字段(可使用模型属性displayField配置)用于值。