Число, появляющееся вместо первой буквы массива - PullRequest
1 голос
/ 15 марта 2012

Я пытаюсь создать плагин загрузки. Я держу всю логику в поведении. К вчерашнему дню все работало нормально, и из ниоткуда эта странная проблема появилась.

/*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] => 
    )

)
*/

Каждый раз, когда появляется число для свойства fields. Иногда его 1, 8 и / или 9.: (

  • Плагин отлично загружается из bootstrap.php (CakePlugin :: loadAll ())
  • Плагин использует таблицу загрузок. Модель которого поддерживается как модель.
  • Поведение плагина правильно определено и работает отлично. НЕ СЕЙЧАС

1 Ответ

0 голосов
/ 06 сентября 2012

Я не мог понять проблему. Но debug () в beforeSave () выполнялся несколько раз. Итак, я добавил в плагин

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

}

Для первых нескольких проходов это все равно что-то похожее, но в третий или четвертый раз он показывает данные.

Итак, я пришел с теорией о том, что плагин beforeSave в плагине был асинхронным по отношению к модели beforeSave, и если я поставлю проверку, то это решит проблему. На самом деле это так.

...