EntityMalformedException: Отсутствует связующее свойство у сущности типа taxonomy_term. в функции entity_extract_ids()

Главные вкладки

Аватар пользователя wenseo wenseo 1 ноября 2015 в 15:12

Здравствуйте.

Проблема: EntityMalformedException: Отсутствует связующее свойство у сущности типа taxonomy_term. в функции entity_extract_ids() (строка 7766 в файле xxxxx.xx/includes/common.inc).

Вылезла она после того, как был приглашен программист для развития сайта. Программист исчез, а проблема появилась.
Причем эта ошибка вылезает только на некоторых подразделах.

Структура сайта обычная - Главная-разделы-подразделы-товары.

Как пример: В таксономии есть словарь, в каждом словаре несколько терминов, в терминах идут товары постранично.
И вот один-два термина выдают ошибку EntityMalformedException, а остальные работают без проблем. Т.е. часть подразделов сайта работает, а некоторая часть выдает одну и туже ошибку.
Тоже самое с постраничным выводом товаров. В некоторых терминах страницы 1,2,3,4 работают, а 5-я страница опять выдает:

"EntityMalformedException: Отсутствует связующее свойство у сущности типа taxonomy_term. в функции entity_extract_ids() (строка 7766 в файле xxxxx.xx/includes/common.inc).
На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже."

Global Redirect отключал - не помогает. Многие модули поочередно отключал - не помогает.

Уже не знаю что делать Sad
Помогите.

Комментарии

Аватар пользователя wenseo wenseo 1 ноября 2015 в 17:10

Ну вот такой вот программист. Не доделал, поломал и пропал.
"Оказалось, в самописном модуле просто для того юзера используется для которого нет такого поля."
это я читал, но не понял Smile
И там не совсем такая проблема. У меня в полностью однотипных подразделах ошибка. В каком то подразделе есть, в каком то нет.

Аватар пользователя goodboy goodboy 2 ноября 2015 в 18:16

Программист писал кастомные модули, правил в шаблонах, template.php ? Если да - нужно смотреть код.

Скорее всего, дело в содержимом полей типа term_reference, когда открываете для определенных терминов или страниц при пейджинге - вот и возникает ошибка. А при открытии ноды не возникает такой ошибки?

P.S. Вы не регистрировались ранее на drupal.ru , например, под именем amator ?

Аватар пользователя wenseo wenseo 3 ноября 2015 в 11:33

"Goodboy" wrote:
Программист писал кастомные модули, правил в шаблонах, template.php ? Если да - нужно смотреть код.

Скорее всего правил. Но как узнать какие и зачем? Часть файлов я уж сам поправлял - по датам не получится выяснить. Как показать код и код чего именно? Там много файлов ***.tpl.php
"Goodboy" wrote:
корее всего, дело в содержимом полей типа term_reference, когда открываете для определенных терминов или страниц при пейджинге - вот и возникает ошибка.

Проблема в том, что не только при пагинации.
Например,
xxxxx.ru/dir1/name1/ работает
xxxxx.ru/dir1/name2/ работает
xxxxx.ru/dir1/name3/ НЕ работает
xxxxx.ru/dir1/name4/ работает
xxxxx.ru/dir1/name5/ работает

При этом настройки терминов идентичны, это просто подразделы (name1-name5), внутри главного раздела (dir1).

"Goodboy" wrote:
А при открытии ноды не возникает такой ошибки?

При открытии какой ноды? Которая ошибку дает?
Там везде редирект 301-й стоит и присваивается синоним каждой ноде, термину.
"Goodboy" wrote:
P.S. Вы не регистрировались ранее на drupal.ru , например, под именем amator ?

Нет, это мой единственный ник тут.

Аватар пользователя goodboy goodboy 3 ноября 2015 в 16:19

wenseo wrote:
"Goodboy" wrote:
Программист писал кастомные модули, правил в шаблонах, template.php ? Если да - нужно смотреть код.

Скорее всего правил. Но как узнать какие и зачем? Часть файлов я уж сам поправлял - по датам не получится выяснить. Как показать код и код чего именно? Там много файлов ***.tpl.php

"Goodboy" wrote:
корее всего, дело в содержимом полей типа term_reference, когда открываете для определенных терминов или страниц при пейджинге - вот и возникает ошибка.

Проблема в том, что не только при пагинации.
Например,
xxxxx.ru/dir1/name1/ работает
xxxxx.ru/dir1/name2/ работает
xxxxx.ru/dir1/name3/ НЕ работает
xxxxx.ru/dir1/name4/ работает
xxxxx.ru/dir1/name5/ работает

При этом настройки терминов идентичны, это просто подразделы (name1-name5), внутри главного раздела (dir1).

"Goodboy" wrote:
А при открытии ноды не возникает такой ошибки?

При открытии какой ноды? Которая ошибку дает?
Там везде редирект 301-й стоит и присваивается синоним каждой ноде, термину.
"Goodboy" wrote:
P.S. Вы не регистрировались ранее на drupal.ru , например, под именем amator ?

Нет, это мой единственный ник тут.

Это же программист написал что-то, что сломало сайт. Теперь задача найти этот код и переписать правильно либо удалить. Найти это - задача творческая.

Вы пишете, "xxxxx.ru/dir1/name3/ НЕ работает". Какой запрос делается по этому адресу? Предполагаю что-то вроде SELECT * FROM {node} WHERE field_dir = dir1 AND field_name = name3 (пример условный). Т.е. выбираются ноды по этому условию. И, раз для всех dir и name настройки идентичны, то дело в нодах. Может быть, достаточно будет пересохранить эти ноды. Предполагаю такую ситуацию: в нодах было необязательное поле, в каких-то нодах заполнялось, в каких-то нет. Потом поле сделали обязательным, программист считал что значение поля всегда непустое и не проверял этот момент. И вот, для таких нод и выдается ошибка - при фильтрации или пейджинге, неважно. Попалась "кривая" нода в выборку и выдает эксепшн.

Насчет 301 редиректа не понял. Используются модули для редиректа или пишется что-то вроде RewriteRule ?

Аватар пользователя wenseo wenseo 3 ноября 2015 в 20:27

"Goodboy" wrote:
Насчет 301 редиректа не понял. Используются модули для редиректа или пишется что-то вроде RewriteRule ?

Там модуль Global Redirect стоит.

Goodboy, спасибо, что помогаете.
С админской частью работаю нормально, но вот с доработкой кода беда - теорию я уже понимаю, вот с практикой увы.
Я сейчас удалил из ./templates/ все файлы и залил туда старые файлы до программиста из бекапа. Конечно, там вылезли ошибки вверху, но, ошибка EntityMalformedException в том же самом из подразделов (xxxxx.ru/dir1/name3/) не исчезла и товары не отображаются.
Т.е. как бы я так понимаю, что это все же в настройках в самом Друпале?
Можно я Вам в личку напишу?