2010-12-29 5 views
2

私はすべて私の関係を正しく '焼いた'と思いますが、私の '関連'テーブルは値の代わりにIDを示しています。Cakephp関連のテーブルは値の代わりにIDを表示します

my dbには3つのテーブルがあります。候補者、資格の見通し、資格。 qualificationlookups、候補者のIDと資格のIDを使用して資格に候補者をリンクします。

私のビュービューでは、 '候補者'のために、私は '関連するqualificationlookups'テーブルがあります。 (qualificationlookupsとqualificationlookupsが候補関係に属しているとベーキングすることによって生成されます)

私の編集ビューでは、 'qualificationlookups'のために、候補と資格のフィールドをドロップダウンとして正しく設定できるので、 'qualificationlookupsの関係は、

私はどのようにして候補者のページの '関連する資格の見取り図'の表に資格の名前( '資格'表から)を表示するようにcakephpに依頼しますか?

私は何かが欠けする必要があります...

誰かが正しい方向に私を指すしてくださいだろうか?

おかげで、Vauneen

+0

'qualificationlookups'テーブルには、他の2つのテーブルのキー以外のデータはありますか? – Stephen

答えて

1

qualificationlookupsテーブルに格納されている他のデータが存在しない場合は、candidates -> HABTM -> qualificationsに関係を変更します。

これを行うには、まずqualificationlookupsテーブルを削除する必要があります。 candidates_qualificationsという2つのインデックス(candidate_idqualification_id)を持つ新しいテーブルを作成します。

CandidateQualificationモデルでは、HABTM Relationshipを定義してください。新しいCandidatesQualificationモデルを作る必要はありません。ケーキは即座にそれを行います。

+0

チャームのように働いた! – Vauneen

+0

非常にスティーブンありがとうございます。 – Vauneen

+0

ようこそ。 – Stephen

3

CakePHPが自動的にテーブルからリストをフェッチするときは、値としてidキーを使用し、テキストには$displayFieldキーを使用します。

テーブルにnameフィールドまたはtitleフィールドがある場合、CakePHPはそれを自動的に表示フィールドとして表示します。

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

HTH:だから、どちらかあなたのモデルでは、あなたの表示フィールド(たとえば、candidate_nameにちょうどname)またはセット$displayField変数として使用するフィールドの名前を変更します。

+0

これは私の最初の考えでした。私は彼の問題は、キー列しか持たない結合表に対してhasMany関係を行っていて、1連の深さを引っ張っているということです。 – Stephen

+0

ああ、すでに提出されたものとは異なる回答/考えを出そうとしていました。乾杯:-) – RabidFire

関連する問題