Cakephp相关表显示id而不是值

时间:2010-12-29 22:41:24

标签: cakephp

我想我已经把所有的关系都正确地“烘焙”了,但是我的“相关”表显示了id而不是值。

我的数据库有3个表。候选人,资格认证,资格。 qualifiedlookups,使用候选人的id和资格的id来链接候选人资格。

在我看来,对于'候选人',我有一个'相关的资格认证'表。 (通过烘焙候选人生成的许多资格认证和资格认证属于候选人关系)

在我的编辑视图中,对于'qualificationlookups',我可以正确设置候选人和资格字段作为下拉列表,所以我知道'qualificationlookups的关系很好。

那么我如何要求cakephp在候选人页面的“相关资格认证”表中列出资格的名称(来自“资格”表)?

我一定错过了什么......

有人可以指出我正确的方向吗?

谢谢,Vauneen

2 个答案:

答案 0 :(得分:3)

每当CakePHP自动从表中提取列表时,它会使用id键作为值,$displayField表示文本。

如果您的表格有nametitle字段,CakePHP会自动将其显示为显示字段。因此,要么将您想要的字段重命名为显示字段(例如,candidate_name只改为name),要么在模型中设置$displayField变量:

class Candidate extends AppModel {
    var $displayField = 'candidate_name';
}

HTH。

答案 1 :(得分:1)

如果qualificationlookups表中没有存储其他数据,请将关系更改为candidates -> HABTM -> qualifications

要执行此操作,首先需要删除qualificationlookups表。创建一个名为candidates_qualifications的新表,其中包含两个索引candidate_idqualification_id

CandidateQualification模型中,定义HABTM Relationship。你不需要制作一个新的CandidatesQualification模型,蛋糕会在运行中进行。