2017-11-02 2 views
0

Ich möchte Avatar in meiner Seite anzeigen, aber ich weiß nicht, wie es geht. Schau, hier ist mein Skript. Es funktioniert nicht. Kannst du mir helfen?Korrekter Link zu Speicher in Laravel

@foreach($user->user_data as $data) 

<img alt="" src="{{ asset('/storage/uploads/avatars/ {{ $data->avatar }} ') }}"> 

@endforeach 
+3

Sie müssen viel mehr Informationen und Code liefern als dass jemand genau zu helfen anfängt. Aber auf den ersten Blick ... vermisst man eine Menge richtiger PHP für das Echo aus HTML. – IncredibleHat

Antwort

0

In Laravel, Code innerhalb {{ }} wird als PHP-Code interpretiert werden, können Sie versuchen, diese:

@foreach($user->user_data as $data) 

    <img alt="" src="{{ asset('/storage/uploads/avatars/'. $data->avatar) }}"> 

@endforeach 

Es ist wie Sie tun:

<img alt="" src="<?php echo asset('/storage/uploads/avatars/'. $data->avatar); ?>"> 
0

Wenn Sie Laravel die normale Art und Weise installiert haben Sie nicht direkt mit dem Speicherordner verknüpfen kann, weil sie außerhalb des öffentlichen Ordner befinden wird.

Nur der Inhalt des Öffentlichen Ordners ist für die Außenwelt zugänglich.

Es gibt zwei Möglichkeiten, diese Einschränkung zu umgehen, abhängig davon, wie sensibel die gespeicherten Daten sind.

  • Wenn jemand auf die Datei zugreifen kann, besteht die einfachste Lösung darin, einen Symlink aus dem öffentlichen Ordner in den Avatar-Speicherordner zu erstellen.
  • Wenn die Datei geschützt werden muss, erstellen Sie eine Controller-Klasse, die den Benutzer autorisiert und anschließend die gewünschten Daten aus dem Speicherpfad zurückgibt.
  • In Ihrem Fall klingt es wie Lösung 1 würde ausreichen, und zum Glück für Sie hat Laravel eingebaute Unterstützung dafür.

    Durch den folgenden Befehl in der Befehlszeile ausführt Laravel wird eine symbolische Verknüpfung von öffentlich/Storage zu Storage/public erstellen:

    php artisan storage:link 
    

    Sie können dann einen Link zu etwas schaffen, das in Speicher gespeichert wird/public unter Verwendung der Asset-Funktion

    asset('storage/path_relative_to_storage_public') 
    

    Für eine ausführlichere Erklärung finden Sie unter: https://laravel.com/docs/5.5/filesystem#the-public-disk