array_flip (): может переворачивать только значения STRING и INTEGER!в DrupalDefaultEntityController-> load () - PullRequest
38 голосов
/ 25 января 2011

Я недавно перенес свой модуль на Drupal7 (в PHP версии 5.3.1) и теперь получаю следующие ошибки:

    * Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
    * Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
    * Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
    * Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 354 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
    * Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
    * Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 354 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
    * Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).
    * Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->cacheGet() (line 354 of C:\Users\akulkarni\Desktop\xampp\htdocs\servicecasting\includes\entity.inc).

Я также пытался обновить другие модули и ядра до последних версий, как указано здесь http://drupal.org/node/1022736

сущность 7.x-1.x-dev (2011-янв-24), просмотры 7.x-3.x-dev (2011-янв-22), Drupal core 7.x-dev (2011-Jan-24), profile2 7.x-1.0-beta1, ссылки 7.x-2.x-dev (2011-янв-14), ctools 7.x-1.0-alpha2

Я не могу понять, что именно вызывает эту ошибку?

Edit:

Согласно http://php.net/manual/en/function.array-flip.php,

array_flip () возвращает массив в обратном порядке, то есть ключи от trans становятся значениями, а значения из trans становятся ключами.

Обратите внимание, что значения trans должны быть действительными ключами, то есть они должны быть либо целыми числами, либо строками. Предупреждение будет издано, если значение имеет неправильный тип, и рассматриваемая пара ключ / значение не будет быть перевернутым.

Я сделал var_dump($ids); перед строкой 178 в entity.inc ($passed_ids = !empty($ids) ? array_flip($ids) : FALSE;)

И мне кажется, что пара ключ / значение всегда имеет правильный формат (?).

array
  0 => 
    array
      'nid' => string '6' (length=1)

array
  0 => 
    array
      'uid' => string '1' (length=1)

array
  0 => string '0' (length=1)

array
  0 => 
    array
      'nid' => string '7' (length=1)

array
  0 => 
    array
      'nid' => string '4' (length=1)

array
  0 => 
    array
      'nid' => string '8' (length=1)

Ответы [ 11 ]

0 голосов
/ 25 января 2011

Используете ли вы модуль вставки?См. http://drupal.org/node/850946.

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

...