我想我已经把所有的关系都正确地“烘焙”了,但是我的“相关”表显示了id而不是值。
我的数据库有3个表。候选人,资格认证,资格。 qualifiedlookups,使用候选人的id和资格的id来链接候选人资格。
在我看来,对于'候选人',我有一个'相关的资格认证'表。 (通过烘焙候选人生成的许多资格认证和资格认证属于候选人关系)
在我的编辑视图中,对于'qualificationlookups',我可以正确设置候选人和资格字段作为下拉列表,所以我知道'qualificationlookups的关系很好。
那么我如何要求cakephp在候选人页面的“相关资格认证”表中列出资格的名称(来自“资格”表)?
我一定错过了什么......
有人可以指出我正确的方向吗?谢谢,Vauneen
答案 0 :(得分:3)
每当CakePHP自动从表中提取列表时,它会使用id
键作为值,$displayField
表示文本。
如果您的表格有name
或title
字段,CakePHP会自动将其显示为显示字段。因此,要么将您想要的字段重命名为显示字段(例如,candidate_name
只改为name
),要么在模型中设置$displayField
变量:
class Candidate extends AppModel {
var $displayField = 'candidate_name';
}
HTH。
答案 1 :(得分:1)
如果qualificationlookups
表中没有存储其他数据,请将关系更改为candidates -> HABTM -> qualifications
。
要执行此操作,首先需要删除qualificationlookups
表。创建一个名为candidates_qualifications
的新表,其中包含两个索引candidate_id
和qualification_id
。
在Candidate
和Qualification
模型中,定义HABTM Relationship。你不需要制作一个新的CandidatesQualification
模型,蛋糕会在运行中进行。