0


Cake2.3.1を使用しています。
私のイベント/追加ビューには、次のフィールドがあります。

echo $this->Form->input('customer_id', array('label' => 'Customer: '));

これは、すべての顧客を含む入力選択フォームです。今私はこれが必要です:

echo $this->Form->input('title', array('type' => 'hidden'));

上記のフィールドで選択した顧客名が自動的に入力されます。
これはどのように行うことができますか?

関係:

Customer HasManyイベント(外部キー-> customer_id)

4

1 に答える 1

3

選択に応じて変化するフォームに非表示の値を設定することはあまり良い考えではありません。エンドユーザーはその値を簡単に変更したり、Javascriptを完全に無効にしたり(オンザフライの変更に必要)する可能性があるため、信頼できません。イベントモデルのbeforeSaveメソッドでフォームを保存するときにタイトルを取得することをお勧めします。例えば:

function beforeSave($options = array()) {
    if (isset($this->data[$this->alias]['customer_id'])) {
        // Set the Customer.name field as Event.title
        $this->data[$this->alias]['title'] = $this->Customer->field(
            'name', array(
                // The condition for the find operation on this customer
                'id' => $this->data[$this->alias]['customer_id']
             )
        );
    }

    return true;
}
于 2013-03-26T15:18:51.227 に答える