0

関連する 2 つのテーブルを取得しました。たとえば、
- 従業員と
- 家族です。

これらは両方とも、employeeID によって主キーおよび外部キーとして接続されます。この標準的な状態は、皆さんもご理解いただけると思います。

「ケーキ焼き」を使用して、すべてのモデル、コントローラー、およびビューを既に作成しています。新しい家族を追加するまでは、すべて問題ありません。シナリオは次のとおりです。

-- フロント ページには、すべての従業員が一覧表示され、それぞれの [表示]、[編集]、および [削除] ボタンが表示されます。
-- 従業員の 1 人 (employeeID 123 の従業員 MAZANDRE とします) の VIEW ボタンをクリックします
-- MAZANDRE の詳細が表示されます -- 詳細の
下に、[新しい家族を追加] ボタンが 1 つあります。
-- ADD NEW FAMILY ハイパーリンクをこれに変更しました

<li><?php echo $this->Html->link(__('New Family'), array('controller' => 'families', 'action' => 'add', $employee['Employee']['id'])); ?> </li>

-- 次に、FamiliesController の add 関数も次のように変更しました

    public function add($id = null) {
    $this->Family->id = $id;
    if ($this->request->is('post')) {
        $this->Family->create();
        if ($this->Family->save($this->request->data)) {
            $this->Session->setFlash(__('The Family has been saved'));
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The Family could not be saved. Please, try again.'));
        }
    }

    $employees = $this->Family->Employee->findById($id);

    $this->set(compact('employees'));
}

-- 次に、この [新しい家族を追加] ボタンをクリックします
-- すべての従業員の詳細 (ID、名前、生年月日、性別など) を一覧表示する 1 つのドロップダウン ボックスがあります。
リンクはhttp://xxxx/hr/family/add/123を示しています

私が欲しいのは、INPUTBOXには次の1つの名前のみがリストされている必要があります:MAZANDREであり、変更(無効化)することはできません。元の名前は次のようになりecho $this->Form->input('employee_id') ます。

あなたの助けに感謝します:-)
どうもありがとう。

よろしく、
アンドリ

4

2 に答える 2

0

これを試してください

  echo $this->Form->input('employee_id',array('readonly','value' => 'MAZANDRE'));

これにより、入力フィールドが読み取り専用の値になり、値がフォームから送信されます。

于 2013-11-13T11:07:28.260 に答える
0

出来上がり!私は自分の答えを得ました。この URL を確認するだけですCakephp: find ステートメント with 'contain'

しかし、Moyed Ansari と user2484796 に感謝します。

これらのコードを FamiliesController
行に配置するだけです

$employees = $this->Family->Employee->findById($id);

と取り換える

$employees = $this->Family->Employee->find('list',array('conditions' => array('Employee.id' => $id)));

それでおしまい !:-)

于 2013-11-14T01:48:26.953 に答える