1

私はcakephp初心者です。

私の従業員モデル、

         class Employee extends AppModel {
            var $belongsTo = array(
                'Department'=>array(
                'className'=>'Department',
                'foreignKey'=>'department_id',
                'conditions'=>null,
                'fields'=>null
               )
         );
          blah--

今、従業員 add.ctp で、すべての部門を一覧表示する選択ボックスを作成したいと考えています。私は公式のcakephp 2.1ドキュメント(here)を調べていましたが、追加するように指示されています

  $this->set('departments', $this->Employee->Department->find('list')); 

私のコントローラーで..

私はどのコントローラーに入れるべきかわからない?それは EmployeesController または DepartmentsController にありますか? そしてコントローラーのどのアクションで?

選択ボックスを作成するためのビュー (add.ctp 内)

         echo $this->Form->input('Department');
4

1 に答える 1

4

あなたはほとんど正しかった-ほんのわずかな不具合:

echo $this->Form->input('department_id');

データベースにあるフィールドに名前を付ける必要があります。department_idまた、それがBelongsTo関係である場合は、employeesテーブルに外部キーがあるはずです。

PS:ケーキは、$ departmentsを渡す場合、この配列がこのフォームフィールドのオプションである必要があることを知っています。したがって、追加の構成は必要ありません。

// in your add action at the very bottom
$departments = $this->Employee->Department->find('list');
$this->set(compact('departments')); 
于 2012-04-10T12:28:03.987 に答える