การเก็บอ็อบเจ็กต์ไฟล์ที่เกี่ยวข้องกับโหนดผ่านฟิลด์เป็นเรื่องง่ายโดยใช้EntityMetadataWrapper
:
$wrapper = entity_metadata_wrapper('node', $node);
$images = $wrapper->field_images;
นั่นเยี่ยมมาก อย่างไรก็ตามฉันต้องการใช้คุณสมบัติบางอย่างของวัตถุไฟล์มาตรฐานและไม่สามารถใช้งานได้ เมื่อฉันดูคุณสมบัติที่มีอยู่ในการ$images[0]->file
ใช้รหัสข้างต้นฉันเห็นเหล่านี้:
- fid
- ชื่อ
- ละครใบ้
- ขนาด
- URL
- การประทับเวลา
- เจ้าของ
ที่สะดุดตาที่สุดuri
หายไปและในสถานที่มีurl
คุณสมบัติซึ่งเป็น URL ภายนอกแบบเต็มไปยังไฟล์ภาพ ฉันต้องการจัดการภาพเหล่านี้ผ่านทาง URI ของพวกเขา (สร้างนิ้วโป้ง ฯลฯ ) ดังนั้นฉันจึงไม่ทำเช่นนี้
$fid = $images[0]->file->fid->value();
$uri = file_load($fid)->uri;
ซึ่งดูเหมือนจะลบล้างจุดทั้งหมดของการใช้EntityMetadataWrapper
ในสถานที่แรก
ฉันกำลังคิดถึงอะไร URI อยู่ที่ไหนในวัตถุไฟล์ที่ถูกหุ้มไว้? หากยังไม่พร้อมสำหรับความรักของทุกสิ่งที่ดีและบริสุทธิ์ทำไมไม่!
ฉันรู้ว่าฉันสามารถแยกแยะ URL กลับเป็น URI ได้ แต่นั่นก็ไม่จำเป็นเช่นกัน
hook_entity_property_info_alter()
" ก็ไม่เป็นไรแค่อยากรู้
entity_metadata_system_entity_property_info()
$info['file']['properties']
ฉันยินดีที่จะเดิมพันหาก file_entity อยู่ในนั้นอาร์เรย์นั้นจะมีคุณสมบัติเอนทิตีในตัวเองอยู่แล้ว ฉันจะพยายามเขียนคำตอบในภายหลังหรือพรุ่งนี้ถ้าไม่มีใครทำไปแล้ว
uri
อยู่ที่นั่นด้วย file_entity