What’s the correct way to get all of the key/values for a bundle on a media entity?
I am trying to create a media entity programmatically and I need to get all of the fields on the image bundle. I am not sure how to get the image bundle ID either.
In other words, I’d like the module I'm working on to be a bit more generic and reusable as I’ve seen the image bundle have different names depending on the installation.
Here’s what I have so far but the two main problems I see are that the image bundle ID can change and the field names on the bundle can be different.
$entity = $this->createFile( $uri, $file['filename'], $file['filesize'], $this->currentUser ); $entity->setPermanent(); $entity->save(); // Save media entity $media = [ 'bundle' => 'image', 'uid' => $this->currentUser->id(), 'status' => 1, 'image' => [ 'target_id' => $entity->id(), 'alt' => t(basename($file['filename'])), 'title' => t(basename($file['filename'])), ], ]; $image = $this->entityTypeManager->getStorage('media')->create($media); $image->save();
I'd like to be able to get the
image bundle and dynamically figure out whichever field has the
target_id and then assign the previously created file entity to that. I do not know how to get the image bundle schema, array signature, in order to traverse the key/values to find the target_id