2013-02-21 8 views
7

Mam problem w przekazywaniu zmiennej kwerendy zamknięcie Builder, tutaj jest mój kod:Zapytanie: przechodzącą argumentu anonimowej funkcji

function get_usersbyname($name){ 
    dd($name); 
    $resultset = DB::table('users')->where(function($query){ 
     $query->where('username', 'LIKE', $name); 
    }); 
.... 
} 

jeśli go uruchomić, to zwraca błąd „undefined name variable”, ale już minął $name zmiennej i sprawdził jej istnienie. Również nie mogę znaleźć żadnych resouce wyjaśnia, jak przekazać zmienną do zapytania anonimowego funkcja budowniczego. Czy możesz mi pomóc w rozwiązaniu tego problemu?

+0

Myślę, że nazwa $ nie mieści się w zakresie 'funkcji (zapytanie $)' –

Odpowiedz

28

Trzeba powiedzieć do funkcji anonimowej używać tej zmiennej jak ...

Ponieważ ta zmienna jest poza zakresem annonymous funkcji to musi być podjęta w użyciu użytkowania słowa kluczowego, jak pokazano na przykład poniżej.

function get_usersbyname($name){ 
    dd($name); 
    $resultset = DB::table('users')->where(function($query) use ($name) { 
     $query->where('username', 'LIKE', $name); 
    }); 
.... 
} 
+0

działa doskonale dziękuję – petwho

Powiązane problemy