我正在使用cakephp 1.3,我有一个小问题,请帮忙
我的数据库中有2个表 个人资料和资格,个人资料属于资格和资格有很多个人资料。鉴定display_field设置为'qualified',我使用 cake bake all 来创建CRUD,当我尝试添加配置文件时,我从下拉列表中的qualrate字段中获取值(而不是id),但是当查看所有配置文件,列表显示资格ID而不是资格中的值,我想在列表中查看资格值而不是资格主键id,
我可以更改视图文件中的值,但我想知道是否可以自动显示值而无需修改配置文件的索引视图文件
非常感谢你们
答案 0 :(得分:2)
Cake应该处理模型中的displayField属性,而烘焙并从我的本地机器运行快速测试表明它确实按预期工作。
在阅读您的初始问题时,您要设置$ Model-> display_field而不是$ Model-> displayField。
注意属性名称上的camelCase。
<?php
class Qualification extends AppModel
{
...
public $display_field = 'qualification';
...
// when it should be
...
public $displayField = 'qualification';
?>
如果能解决问题,请告诉我。您不必使用烘焙文件中的索引。特别是如果你使用烘焙一次做一个控制器,模型都已经烘焙或准备使用。
答案 1 :(得分:1)
通常会发生蛋糕烘烤“全部”
不要使用“all”,而是手动完成它(然后按几次输入)。 这会正确地烘烤你的关系
我也有这个问题,并以这种方式解决(可能是一个错误,但没有时间深入挖掘它)。
顺便说一下: 您的递归级别> gt也很重要。 0为此工作! 我通常在app模型中有-1(默认值)但是对于新模型我将它在模型中设置为2以烘焙所有关系(如您所述)。之后,我再次将其删除,再次默认为-1(实际上,如果您不想在设置递归级别的情况下进行大量工作,那应该是什么。)
答案 2 :(得分:-1)
我不这么认为。
这只是一个简单的修改:转到您的profiles / index.ctp文件并更改:
$profile['Profile']['qualification_id'];
到
$profile['Qualification']['qualification'];
我认为没有办法告诉烘焙清单上的显示字段应该是什么。虽然我认为这是一个好点,可以作为新版本的增强添加。
但是,你必须要记住的是,烘焙只会让你掌握基础知识,所以你不必编写最简单的代码,但几乎总是需要进行一些改动。