何よりもまず、MVCフレームワークでモデルを作成せずにテーブルからデータをフェッチする必要がある場合は、何か間違ったことをしている可能性があります。
実際に5つの可能な値(MBA、MCA、BCA、BA、PHD)しかない場合は、おそらく、has_mba、has_mcaなどの5つの個別のtinyint(1)フィールドを作成します。ビュー内のそれぞれが個別のチェックボックスとして表示されます。それがおそらく最も簡単な方法です。
それをしたくなくて、間違いなく別のDegreeMstテーブルが必要な場合は、 hasAndBelongsToMany関係が必要になります。
Student_id列とdegreemst_id列を持つstudents_degreemstsのような個別の結合テーブルが必要になります。結合テーブルのモデルを作成する必要はありません。
設定すると、チェックボックスを出力するためのビューのコードは次のようになります。
echo $this->Form->input('Student.DegreeMst',array('label'=>'Select your degrees','multiple'=>'true'));
アップデート
3つのデータベーステーブルと2つのモデルが必要です。多対多(つまり、CakeがhasAndBelongsToManyと呼ぶもの)の関係と結合テーブルについて知っていますか?
データベースには、CakePHPの信念に従って名前が付けられた3つのテーブルが必要です。
学生(id、name、address、other_field)
度(id、name、another_field)
students_degrees(id、student_id、degree_id)
最後のテーブルは参加テーブルであり、学生と学位テーブルへの2つの外部キーが含まれている必要があります。CakePHPでは、結合テーブルにモデルやコントローラーは必要ありません。
明らかに、Studentsテーブルのモデルが必要です。ここで、hasAndBelongsToMany関係を定義します。
public $hasAndBelongsToMany = array(
'Degree' => array(
'className' => 'Degree',
'joinTable' => 'students_degrees',
'foreignKey' => 'student_id',
'associationForeignKey' => 'degree_id',
),
);
度数テーブルのモデルも必要ですが、必要でない限り、そのモデルでhasAndBelongsToMany関係を再度定義する必要はありません。