Pergunta

Eu tenho um modelo de Evento que em um banco de dados tem dois campos para armazenar o tempo de pausa, nomeadamente 'phour' e 'pmin'.Em um Evento de formulário de criação de eu ter campos de entrada de tipo de tempo que produzem a matriz a seguir depois que o formulário é apresentado:

array(
    'Event' => array(

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

Eu preciso atribuir a pausa horas e minutos, de acordo com DB campos depois que o formulário é submetido, mas eu simplesmente não consigo fazê-lo funcionar.

Qualquer ajuda é muito apreciada.

Foi útil?

Solução

Use sempre o 'beforeSave' () retornos de chamada em seu modelo para editar seus dados.

Ver Retornos De Chamada De Métodos

Com o exemplo de @jimmy-madom

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;
}

Outras dicas

Na ação, chamada por seu formulário, use:

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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top