shahzadsarwar's avatar

Show only related data in search filter

trying to apply a search filter.

$streets = (new PropertyStreet)->newQuery();

    if ($request->has('street')) {
        $streets->where('name', 'like', '%'.$request->street.'%');
    }

    if ($request->has('house')) {
        $streets->whereHas('properties', function ($query) use ($request) {
            $query->where('house_number', $request->house);
        });
    }

    return $streets->get();

it gets the street data I want to do something like this ?street=b-34&house=21 and to display the house data, only as of right now it get's only street.

0 likes
4 replies
manelgavalda's avatar

Hey, I think that the first thing is that you are missing to assign the result of the where to the variable before returning it:

if ($request->has('street')) {
    $streets = $streets->where('name', 'like', '%'.$request->street.'%');
}

if ($request->has('house')) {
    $streets = $streets->whereHas('properties', function ($query) use ($request) {
        $query->where('house_number', $request->house);
    });
}

return $streets->get();
shahzadsarwar's avatar

@MANELGAVALDA - Thank you I did apply that. Is it possible to display the property data after the search, as it just returns the street. such as ?street=b-34&house=21

manelgavalda's avatar

@SHAHZADSARWAR - Um, I don't quite understand what you mean, sorry. Do you mean to display the data in the url after doing the search?

shahzadsarwar's avatar

?street= returns the results of street. What I'm trying to achieve is ?street=1&house=abc, to show only the house related data, but it should be in street 1.

Please or to participate in this conversation.