2015-09-12 14 views
6

Ich bekomme meine $id von der URL, aber ich konnte keinen Weg finden, es in einer Funktion zu verwenden. Wie kann ich $ ID an die Abfragefunktion übergeben?Laravel undefined Variable innerhalb einer Funktion

Ich versuchte globale $ ID, aber ich kann immer noch keinen Wert, nur leere Seite.

Mein Controller.

class BookController extends Controller 
{ 
    public function bookIndex($id, $slug) 
    { 
    // echo $id works without a problem 
    $findcover = Thing::with(array('cover' => function($query) { 
       $query->where('imageable_type', 'App\Models\Thing') 
        ->where('imageable_id', $id); 
      }))->find($id); 

      $maincover = $findcover->cover; 
} 

Fehler:

ErrorException in BookController.php line 49: 
Undefined variable: id 

49 Linie

->where('imageable_id', $id); 
+0

'Funktion ($ query) $ id' verwenden? – aldrin27

+0

Ja, ich muss diese $ ID in meiner Funktion verwenden. – salep

+0

Was ich meine, ist das Einfügen in Ihrer Abfrage – aldrin27

Antwort

10
class BookController extends Controller 
{ 
    public function bookIndex($id, $slug) { 
    // echo $id works without a problem 

    $findcover = Thing::with(array('cover' => function($query) use ($id) { 
     $query->where('imageable_type', 'App\Models\Thing') 
       ->where('imageable_id', $id); 
     }))->find($id); 

     $maincover = $findcover->cover; 
    } 

Fügen Sie die Reserve Wort Verwendung Ihre $id entlang Ihrer Anfrage einzufügen.

+3

Das war sehr nah für mich. Ich musste nur die '$ id' Variable in Klammern 'use ($ id)' setzen. – Rail24

+0

danke .. es funktioniert super –

+0

'$ ID' sollte in Klammern sein – JohnB

Verwandte Themen