Ich muss das Profilbild des Benutzers mit dem folgenden Code abrufen:
\Drupal::service('renderer')->renderPlain(\Drupal\user\Entity\User::load(\Drupal::currentUser()->id())->user_picture->first()->view('large'))
Es gibt ein Objekt mit dem Image-Tag zurück, schlägt jedoch mit dem _Call to a member function view() on a non-object_
Fehler fehl , wenn für einen Benutzer kein Profilbild festgelegt wurde.
Ich habe auch die Antwort auf " Wie erhalte ich das Standardbenutzerbild? " Versucht , aber es gibt den Fehler
Drupal \ Core \ Database \ InvalidQueryException: Die Abfragebedingung 'file_managed.uuid IN ()' darf nicht leer sein.
quelle
quelle
print_r($account)
ich eineDrupal\Core\Session\UserSession Object
Eigenschaft ohne user_picture erhalten.Dies ist wirklich eher ein PHP-Problem. Sie sollten Objektmethoden nicht in die Argumente einer anderen Funktion aufrufen, insbesondere wenn Sie sich mit Feldern in einer Drupal-Entität befassen, da diese möglicherweise festgelegt oder nicht festgelegt sind.
Außerdem empfehlen Drupal-Codierungsstandards, dass Sie versuchen, Ihre Zeilen unter 80 Zeichen zu halten, und ich bin der Meinung, dass dies eine gute Vorgehensweise ist, da der Code dadurch besser lesbar wird. Sehen:
https://www.drupal.org/node/935284
Außerdem finden Sie hier einen Beitrag zum Abrufen des Standardbilds für einen Benutzer. Möglicherweise möchten Sie ein Standardbild für dieses Feld festlegen.
Wie bekomme ich das Standardbenutzerbild?
quelle
Dies ist der beste Weg in Drupal 8, ein benutzerdefiniertes Modul mit Controller zu erstellen und eine Variable an Twig zu senden:
quelle