0

バックグラウンド

すべての従業員 (表 1) を取得してドロップダウンに追加する必要があるアプリを作成しています。これにより、employee_id が Supervisors テーブルに保存されます (表 2)。

私が持っているもの

私は2つのテーブルを持っています:

,------------,-----------,------------,--------------,
| Table_1_id | Name      | Surname    | Table_2_id   |
'------------'-----------'------------'--------------'

,------------,------------,
| Table_2_id | Table_1_id |
'------------'------------'

私は何を試しましたか

私は次のことを試しました:

$hrEmployees = $this->HrEmployee->find('list',
    array(
        'fields' => array("id","fullname"),
        'order' => array('HrEmployee.name ASC','HrEmployee.surname ASC')
    )
);
$this->set(compact('hrEmployees'));

これは、編集/追加機能の下の表 1 コントローラーにあります。

問題

これを行う方法がわかりません。仮想フィールドを使用してそれをビューに渡すだけで、ドロップダウンに名前が入力されると思いましたが、明らかに間違っています。DB 構造を再設計する必要がある場合はそうしますが、これが必要なだけです。誰か助けてくれませんか?

4

1 に答える 1

1

従業員テーブルに table2_Id を含める必要はありません。従業員配列から従業員配列を取得して、テンプレートに渡すことができます。ユーザーがドロップダウンから従業員を選択するたびに、別のクエリを実行して、選択した従業員 ID をスーパーバイザー テーブルに挿入する必要があります。

于 2013-02-15T10:06:54.227 に答える