1

我正在尝试创建一个上传插件。我将所有的逻辑都保留在行为中。到昨天为止,这件事一切正常,而且从没有出现过这个奇怪的问题。

/*controller code */
debug($this->request->data);
$this->Model->saveAll($this->request->data);

/* outputs
Array
(
   [Ad] => Array
    (
        [s] => 2
        [d] => 2
    )

    [Upload] => Array
    (
        [field] => Upload
        [table] => Ad
        [filename] => Array
            (
                [name] => index.php
                [type] => application/x-php
                [tmp_name] => /tmp/php3MbvRh
                [error] => 0
                [size] => 32
            )

    )

)

 */

我正在开发一个插件。在插件 beforeSave() 我调试相同的数据,它显示

public function beforeSave(Model $Model) {
    debug($Model->data);
}

/* outputs
Array
(
    [Upload] => Array
    (
        [1pload] => 
    )

)
*/

每次出现字段属性的数字。有时它是 1、8 和/或 9。:(

  • 该插件从 bootstrap.php (CakePlugin::loadAll()) 加载正常
  • 该插件使用上传表。其中的模型被维护为模型。
  • 插件行为已正确定义并且运行良好。现在不要
4

1 回答 1

0

我无法弄清楚问题所在。但是 beforeSave() 中的 debug() 被执行了好几次。所以,我在插件中添加了

if( isset ($this->data['preferred']['data'] )  {

}

对于前几次传递,它仍然是类似的,但在第三次或第四次它确实显示了数据。

因此,我提出了一个理论,即插件中的 beforeSave 与模型的 beforeSave 异步,如果我进行检查,那么这将解决问题。事实上确实如此。

于 2012-09-06T04:17:20.953 回答