Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP 2 beforeSave()不工作_Php_Cakephp_Before Save - Fatal编程技术网

CakePHP 2 beforeSave()不工作

CakePHP 2 beforeSave()不工作,php,cakephp,before-save,Php,Cakephp,Before Save,我必须在保存之前处理发布的数据。 $this->data是这样的数组 Array ( [Presence] => Array ( [Month] => 02 [Year] => 2012 [0] => Array ( [day] => 1 [presenza]

我必须在保存之前处理发布的数据。 $this->data是这样的数组

Array
(
    [Presence] => Array
        (
            [Month] => 02
            [Year] => 2012
            [0] => Array
                (
                    [day] => 1
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [1] => Array
                (
                    [day] => 2
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [2] => Array
                (
                    [day] => 3
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [3] => Array
                (
                    [day] => 4
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [4] => Array
                (
                    [note] => 
                )

            [5] => Array
                (
                    [note] => 
                )

            [6] => Array
                (
                    [day] => 7
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [7] => Array
                (
                    [day] => 8
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [8] => Array
                (
                    [day] => 9
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [9] => Array
                (
                    [day] => 10
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [10] => Array
                (
                    [day] => 11
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [11] => Array
                (
                    [note] => 
                )

            [12] => Array
                (
                    [note] => 
                )

            [13] => Array
                (
                    [day] => 14
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [14] => Array
                (
                    [day] => 15
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [15] => Array
                (
                    [day] => 16
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [16] => Array
                (
                    [day] => 17
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [17] => Array
                (
                    [day] => 18
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [18] => Array
                (
                    [note] => 
                )

            [19] => Array
                (
                    [note] => 
                )

            [20] => Array
                (
                    [day] => 21
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [21] => Array
                (
                    [day] => 22
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [22] => Array
                (
                    [day] => 23
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [23] => Array
                (
                    [day] => 24
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [24] => Array
                (
                    [day] => 25
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [25] => Array
                (
                    [note] => 
                )

            [26] => Array
                (
                    [note] => 
                )

            [27] => Array
                (
                    [day] => 28
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [28] => Array
                (
                    [day] => 29
                    [presenza] => 1
                    [time_in] => 09:00
                    [time_out] => 18:00
                    [pausa] => 01:00
                    [hours] => 08:00
                    [client_id] => 4
                    [note] => 
                )

            [user_id] => 3
        )

)
我必须修改日期并在每个“子数组”中插入用户id


但是,当我调用beforeSave()时,只是为了调试,debug($this->data)的结果是一个空数组,我什么也做不了。

beforeSave方法应该只返回
true
false
,告诉save函数它是否可以继续,所以你只能将逻辑放在那里,而不会影响数据本身

要修改数据,只需在调用save函数之前在控制器函数中(重新)设置它,如:

foreach($this->data['Presence'] as $key => $data) {
    if(is_array($key)) {
        // This should be a sub-array
        $this->data['Presence'][$key]['day'] = 1; // Set your 'new' day here
        $this->data['Presence'][$key]['user_id'] = 1337; // Set your user id here
    }
}

// Then, afterwards, save the adjusted data array
$this->Presence->save($this->data);

beforeSave方法应该只返回
true
false
,告诉save函数是否可以继续,因此您只能将逻辑放在那里,而不会影响数据本身

要修改数据,只需在调用save函数之前在控制器函数中(重新)设置它,如:

foreach($this->data['Presence'] as $key => $data) {
    if(is_array($key)) {
        // This should be a sub-array
        $this->data['Presence'][$key]['day'] = 1; // Set your 'new' day here
        $this->data['Presence'][$key]['user_id'] = 1337; // Set your user id here
    }
}

// Then, afterwards, save the adjusted data array
$this->Presence->save($this->data);

在“添加控制器”功能中实现所有这些功能可以使其正常工作,但根据MVC这样做是否正确?只是说,您可以(并且根据MVC,您可能应该)在保存之前修改数据。@luisclement如果您重新设置
$this->data
数组的任何键,您是对的,它将按此方式保存。在“添加控制器”函数中使所有这些都正常工作,但根据MVC这样做是否正确?只是说,您可以(并且根据MVC,您可能应该)在保存之前修改数据。@LuisClemente如果您重新设置
$this->data
数组的任何键,您是对的,它将被保存为这样。