ฉันมีข้อผิดพลาดร้ายแรงEntityMalformedException: ไม่มีคุณสมบัติบันเดิลในเอนทิตีของโหนดประเภท ใน entity_extract_ids () (สาย 7700 ของ. \ รวมถึง \ common.inc) เมื่อพยายามที่จะเข้าถึงผู้ใช้ / xyz
ฉันพยายามดึงข้อมูลเกี่ยวกับโหนดที่มีรูปแบบไม่ถูกต้องที่บรรทัด 7700 ซึ่งมีการสร้างข้อความแสดงข้อผิดพลาดคิดว่า:
if (!isset($entity->{$info['entity keys']['bundle']}) || $entity->{$info['entity keys']['bundle']} === '') {
dpm($info);// or dpm($entity);
throw new EntityMalformedException(t('Missing bundle property on entity of type @entity_type.', array('@entity_type' => $entity_type)));
}
dpm($entity)
ส่งคืนวัตถุผู้ใช้ที่ไม่คาดคิดและ $ info เป็นจำนวนมาก
มีใครบางคนทำให้ฉันในทางที่ถูก?
ฉันได้อ่านอะไรก็ตามที่ฉันสามารถหาได้เกี่ยวกับข้อผิดพลาดของคุณสมบัติบันเดิลที่หายไปแต่ไม่มีใครช่วยแก้ไข
dpm($entity)
ผลตอบแทน
uid (String, 2 characters ) 70
name (String, 9 characters ) John
pass (String, 55 characters ) $S$DUwPuOuDPiDL4nRTYXqc7a5uOfMKey7pyhOFUEKka1XM...
mail (String, 30 characters ) john@example.com
theme (String, 0 characters )
signature (String, 0 characters )
signature_format (String, 13 characters ) filtered_html
created (String, 10 characters ) 1396286331
access (String, 10 characters ) 1397146661
login (String, 10 characters ) 1396513460
status (String, 1 characters ) 1
timezone (NULL)
language (String, 2 characters ) fr
picture (NULL)
init (String, 30 characters ) john@example.com
data (Array, 5 elements)
roles (Array, 1 element)
og_user_node (Array, 0 elements)
message_subscribe_email (Array, 1 element)
field_bio (Array, 0 elements)
field_name_first (Array, 1 element)
field_name_last (Array, 1 element)
field_facebook_url (Array, 0 elements)
field_linkedin_url (Array, 0 elements)
field_twitter_url (Array, 0 elements)
user_trusted_contacts (Array, 1 element)
group_group (Array, 1 element)
group_access (Array, 1 element)
metatags (Array, 0 elements)
rdf_mapping (Array, 3 elements)
realname (String, 13 characters ) John Doe
content (Array, 13 elements)
entity_view_prepared (Boolean) TRUE
privatemsg_disabled (Boolean) FALSE
entity_extract_ids('node', $var);
แต่แทนที่จะเป็นโหนดวัตถุ$var
มันกำลังส่งผ่านวัตถุผู้ใช้ หากคุณมีโมดูล contrib รุ่นกำหนดเองหรือ dev ลองปิดการใช้งานพวกเขาหนึ่งโดยหนึ่งเพื่อดูว่าคุณสามารถหาผู้กระทำผิด
dpm(debug_print_backtrace());
จะล้ำค่าที่นี่ คุณสามารถดูว่าโมดูลเริ่มต้นมันทั้งหมดได้อย่างไรโดยทำตามฟังก์ชั่นกลับไปที่จุดเริ่มต้นของคำขอ
xdebug.collect_params = 4
สิ่งเหล่านี้จะทำให้ชีวิตของคุณง่ายขึ้นมาก