Domas
Domas

Reputation: 1133

CakePHP capture fields that were updated

I have the following input fields in one of the edit forms:

    <?php
        echo $this->Form->input('customer_nr');
        echo $this->Form->input('name',array('id'=>'customer_name'));
        echo $this->Form->input('phone');
        echo $this->Form->input('email');
?>

In the controller I just check if the request is post/put and save that single row.

What I want to do is to capture which fields have been changed. That is needed for giving different flash messages.

I have been through cake php documentation, but did not find any behaviour for this issue.

Any help or guidance is much appreciated.

Upvotes: 1

Views: 40

Answers (1)

cleverketchup
cleverketchup

Reputation: 340

If you need to check, if data from form and from database are different, then:

$data = $this->ModelName->findById($id);
if($this->request->data != $data){
    //array was changed
}

If you need to know, which array key is different, then:

$data = $this->ModelName->findById($id);
$data = $this->ModelName->findById($id);
$difference = array_diff($data, $this->request->data)

Is that what you need?

Upvotes: 1

Related Questions