필드를 통해 노드와 관련된 파일 객체를 얻는 것은 EntityMetadataWrapper
:
$wrapper = entity_metadata_wrapper('node', $node);
$images = $wrapper->field_images;
그래서 훌륭합니다. 그러나 표준 파일 객체의 일부 속성을 사용하려고하는데 사용할 수 없습니다. $images[0]->file
위 코드 를 사용하여 사용할 수있는 속성을 보면 다음과 같습니다.
- 버팀대
- 이름
- 몸짓 광대극
- 크기
- 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가 있습니다.