0


我正在使用蛋糕 2.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(即时更改需要这样做),因此它不值得信赖。最好在 Event 模型的 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 回答