Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

adamjhn's avatar

Undefined variable $query

I want to do a query to get the registrations in conferences of the auth user that are like the text introduced by the user in the search form.

But with code below it appears "Undefined variable $query".

Do you know where is the error?


public function searchRegistration(Request $request)
{
    $pageLimit = 5;
    $user = Auth::user();
    $search = $request->search_registration;

    $searchedRegistrations = $user->registrations()->whereHas('conference', function ($query) use($user) use($search){
        $query->where('name', 'LIKE', '%'.$search.'%')->where('organizer_id',$user->id)
    })->paginate($pageLimit);
}

0 likes
3 replies
lostdreamer_nl's avatar
Level 53

Try this (single use statement):


    $searchedRegistrations = $user->registrations()->whereHas('conference', function ($query) use($user, $search){
        $query->where('name', 'LIKE', '%'.$search.'%')->where('organizer_id',$user->id)
    })->paginate($pageLimit);
1 like
pardeepkumar's avatar

something use like this in single line

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

you dont need to pass user around anyway since there is a helper

public function searchRegistration(Request $request)
{
    $pageLimit = 5;
    $search = $request->search_registration;

    $searchedRegistrations = user()->registrations()->whereHas('conference', function ($query) use($search){
        $query->where('name', 'LIKE', '%'.$search.'%')->where('organizer_id',user()->id)
    })->paginate($pageLimit);
}

1 like

Please or to participate in this conversation.