2015-09-12 10 views
6

Otrzymuję mój $id z adresu URL, ale nie mogłem znaleźć sposobu użycia go w funkcji. Jak mogę przekazać $ id do funkcji zapytania?Nieokreślona zmienna Laravel w funkcji

Próbowałem globalnego identyfikatora $, ale nadal nie mogę uzyskać wartości, po prostu pusta strona.

Mój kontroler.

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; 
} 

Błąd:

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

Linia 49

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

'funkcja (zapytanie $) użyj $ id'? – aldrin27

+0

Tak, muszę użyć tego identyfikatora $ $ wewnątrz mojej funkcji. – salep

+0

Mam na myśli wstawkę, która w twoim zapytaniu – aldrin27

Odpowiedz

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; 
    } 

dodać słowo rezerwowych korzystanie do wstawienia $id wzdłuż zapytanie.

+3

To było bardzo blisko mnie. Po prostu musiałem umieścić zmienną '$ id' w nawiasach' use ($ id) '. – Rail24

+0

dzięki .. to działa świetnie –

+0

'$ id' powinno być w nawiasie – JohnB