* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! в функции DrupalDefaultEntityController->load() (строка 178 в файле /home/gameremi/public_html/includes/entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! в функции DrupalDefaultEntityController->cacheGet() (строка 354 в файле /home/gameremi/public_html/includes/entity.inc).
убрал записи из блога ошибка изчезла, но появилась в другом месте. к форме регистрации было добавлено дополнительное обязательное поле (text-список), куда записаны несколько строк данных. суть в том, что друпал почему-то не формирует новую таблицу для этих записей, а формирует массив, записывая полностью весь массив в одну ячейку таблицы базы.
после этого и начинаются проблемы, т.к. функция [function.array-flip] не может, почему-то, корректно работать с полученными данными.
мораль, нужно либо научить функцию работать со всем, с чем только можно, либо как-то изменить принципы записи данных в базу друпала.
почему данные не пишутся напрямую в таблицы, а сначала пишутся в массив, а затем уже в базу?
как можно заставить cms писать данные напрямую?
У меня эта ошибка возникла после миграции с drupal 6 на 7. Пока не решил. Появляется на всех страницах одного типа материала, где много полей.
Полный текст ошибки у меня такой
Warning: array_flip()[function.array-flip]:
Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load() (line 178 of C:\server_os\domains\bm\www\includes\entity.inc).
В общем ошибка возникала из-за того что одно поле CCK как-то криво мигрировалось. Это поле "изображение" (единичное). После удаления поля ошибка исчезла. Кстати, определить в чем причина мне помог следующий кейс:
в файле \includes\entity.inc
перед той строкой, на которой происходит ошибка, я вывел массив:
Содержимое которого ясно дало мне понять где ошибка. Почитал в гугле - причин возникновения данной ошибки великое множество, поэтому если не сделать распечатку массива можно гадать очень долго. Может кому пригодится, кто найдет этот пост через гугл, как и я
Комментарии
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! в функции DrupalDefaultEntityController->load() (строка 178 в файле /home/gameremi/public_html/includes/entity.inc).
* Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! в функции DrupalDefaultEntityController->cacheGet() (строка 354 в файле /home/gameremi/public_html/includes/entity.inc).
убрал записи из блога ошибка изчезла, но появилась в другом месте. к форме регистрации было добавлено дополнительное обязательное поле (text-список), куда записаны несколько строк данных. суть в том, что друпал почему-то не формирует новую таблицу для этих записей, а формирует массив, записывая полностью весь массив в одну ячейку таблицы базы.
после этого и начинаются проблемы, т.к. функция [function.array-flip] не может, почему-то, корректно работать с полученными данными.
мораль, нужно либо научить функцию работать со всем, с чем только можно, либо как-то изменить принципы записи данных в базу друпала.
почему данные не пишутся напрямую в таблицы, а сначала пишутся в массив, а затем уже в базу?
как можно заставить cms писать данные напрямую?
У меня такая же ошибка. У вас как-то получилось её решить?
Это всё модуль page title шалит. Решение тут.
В новой версии такого модуля и таких файлов нет впомине. Однако ошибка один-в один. Что может быть?
У меня эта ошибка возникла после миграции с drupal 6 на 7. Пока не решил. Появляется на всех страницах одного типа материала, где много полей.
Полный текст ошибки у меня такой
Can only flip STRING and INTEGER values! in DrupalDefaultEntityController->load()
(line 178 of C:\server_os\domains\bm\www\includes\entity.inc).
В общем ошибка возникала из-за того что одно поле CCK как-то криво мигрировалось. Это поле "изображение" (единичное). После удаления поля ошибка исчезла. Кстати, определить в чем причина мне помог следующий кейс:
в файле \includes\entity.inc
перед той строкой, на которой происходит ошибка, я вывел массив:
print_r($ids);
Содержимое которого ясно дало мне понять где ошибка. Почитал в гугле - причин возникновения данной ошибки великое множество, поэтому если не сделать распечатку массива можно гадать очень долго. Может кому пригодится, кто найдет этот пост через гугл, как и я
Не хочется поля убирать. там аватарки и т.п.
проблема после апгрейда на d7
как бы решить?
save
Похожее, но с форумом:
http://www.drupal.ru/node/103928
Вписал я print_r($ids);
Что я должен увидеть? Совпадение значений ключей?
Вижу у себя большую пачку:
Array
(
[0] => 148
)
Array
(
[0] => 148
)
и т.д.
И как понять где проблема?
Что за значение 148?
Это как в "Путеводителе по Галактике". Есть ответ 148. Только бы еще знать на какой вопрос он отвечает )
Открываем файлик includes/entity.inc
находим строку(175)
<?php$passed_ids = !empty($ids) ? array_flip($ids) : FALSE;?>
меняем на
<?php$passed_ids = !empty($ids) ? ( !in_array(NULL, $ids) ? array_flip($ids) : FALSE ) : FALSE;?>
До сих пор проявляется эта ошибка.
Патч из последнего поста помог.
Как дать им знать, чтобы пофиксили?