2017-06-08 3 views
1

Ich erlaube Geschäft, Bilder hochzuladen. Alles wird in die Datenbank gespeichert, und das einzige, was ich tun müssen, um Bilder abrufen, die business_id entsprechen:laravel Anzeigepfad, der business_id entspricht

enter image description here

So, jetzt muss ich Throught business_id durchsuchen und wenn es passend, Ausgabe aller Bilder.

function displayBusiness($id) { 
    $business = Business::find($id); 
    $address = Address::find($id); 
    $session = session()->put('key', $id); 
    $session = session()->get('key'); 
    $retrieve_gallery = Gallery::where('business_id', '=' ,$session)->firstOrFail(); 
    return view('displayBusiness', compact('business', 'address', 'gallery')); 
} 

In Sitzungsvariable Ich speichere eine Business-ID aus Business-Tabelle. Ich möchte mit jedem business_id in Datenbank, die Sitzungsvariable entsprechen und das Rück compact ‚Galerie‘, so kann ich es Weg im Blick:

<img class="images" src="{{ asset($gallery->path) }}" /> 

aber ich $ Galerie bekommen ist nicht definiert. Wie kann das behoben werden?

+0

was erwartest du, galerie ist nirgends definiert – Derek

Antwort

1

Verwenden get() eine Sammlung von Bildern zu erhalten:

$gallery = Gallery::where('business_id', $id)->get(); 

Dann Bilder durchlaufen, um sie anzuzeigen:

@foreach ($gallery as $image) 
    <img class="images" src="{{ asset($image->path) }}" /> 
@endforeach 
+1

liebe dich <3 danke dafür – Przemek

0

Ich denke, es ist, weil Sie, bevor Sie eine $ Galerie Variable nicht schaffen nenne es auf compact().

Also, wenn Sie

compact('business', 'address', 'gallery') 

tun Es ist wie

tun
['business' => $business, 'address' => $address]; 

Beachten Sie, dass compact() wird keine Warnung aus, wenn ein Wert (siehe die Dokumentation für kompakte Funktion, erste Benutzer nicht definiert ist Beitragshinweis: http://php.net/manual/fr/function.compact.php#101775).

Als Ergebnis ist $ gallery in der Tat undefined in Ihrem Beispiel. So

Ändern $ retrieve_gallery zu $ Galerie, dass bestimmtes Problem lösen, sollten Sie erwähnen.