在表单提交cakePHP后为字段分配值

时间:2014-02-27 15:10:10

标签: cakephp cakephp-2.3

我有一个事件模型,在数据库中有两个字段来存储暂停时间,即'phour''pmin'。 在事件创建表单中,我有输入字段类型的时间,在提交表单后生成以下数组:

array(
    'Event' => array(

        'pause' => array(
            'hour' => '02',
            'min' => '30'
        ),
        'hours' => '3',
        'minutes' => '30',
    )
)

我需要在提交表单后将暂停小时和分钟分配给相应的数据库字段,但我无法让它工作。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

始终使用模型中的 beforeSave()回调来编辑数据。

请参阅Callbacks Methods

以@ jimmy-madon

为例
public function beforeSave($options = array())
{
    if (!empty($this->data[$this->alias]) {
        $this->data[$this->alias]['phour'] = $this->data[$this->alias]['pause']['hour'];
        $this->data[$this->alias]['pmin'] = $this->data[$this->alias]['pause']['min'];

    }

    return true;
}

答案 1 :(得分:0)

在表单调用的操作中,使用:

if (!empty($this->request->data['Event']) {
    $this->request->data['Event']['phour'] = $this->request->data['Event']['pause']['hour'];
    $this->request->data['Event']['pmin'] = $this->request->data['Event']['pause']['min'];
    $this->Event->save($this->request->data);
}