web-dev-qa-db-ja.com

デフォルトのユーザー画像を取得するにはどうすればよいですか?

次のコードを使用して、ユーザーに関連付けられている画像のURLを取得しています。

$user=\Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
$picture=$user->get('user_picture')->entity->url();

ユーザーが画像をアップロードしなかった場合、このコードは有用なものを返しません。

デフォルトの画像のURLを取得するにはどうすればよいですか?

4
Kevin

ユーザー画像は、Drupal 8.に存在することが保証されなくなりました。これは標準プロファイルによって追加されますが、最小プロファイルを使用する場合は追加されません。

ユーザー画像は、ユーザーバンドルに添付された単なる画像フィールドであるため、通常のファイルフィールドAPIを使用できます。 ユーザーバンドルに添付されたユーザー画像フィールドのデフォルト画像のファイルパスを取得するには:

<?php
$field = \Drupal\field\Entity\FieldConfig::loadByName('user', 'user', 'user_picture');
$default_image = $field->getSetting('default_image');
$file = \Drupal::entityManager()->loadEntityByUuid('file', $default_image['uuid']);
$file->getFileUri();
?>

あなたが何を成し遂げようとしているのか分かりません。より適切なデフォルトのアバターを探している場合は、 アバターキット Drupal 8.を参照してください。免責事項:私はアバターキットの開発者。

5
Daniel