Why are we now staring over?
Jan 26, 2023
17
Level 6
search form
You know choosing a house for rent. A person who does not care about the price does not enter a number and the field remains empty. Maybe only the elevator is important to him, and in the search, he finds items with an elevator, so the rest of the fields remain empty. we search form is
<form action="{{ route('rentsearch') }}" method="GET">
@csrf
<input type="text" name="thumbnail" placeholder="Street" class="form-control"><br>
<input type="number" name="pish" placeholder="Max pish" class="form-control"><br>
<input type="number" name="mah" placeholder="Max month" class="form-control"><br>
<input type="number" name="metraj" placeholder="Max meter" class="form-control"><br>
<input type="number" name="bedroom" placeholder="Max bedroom's" class="form-control">
<input class="form-check-input" type="checkbox" name="parking" id="parking">
<input class="form-check-input" type="checkbox" name="elv" id="elv">
<input class="form-check-input" type="checkbox" name="storeroom" id="storeroom">
<button type="submit" class="btn btn-primary col">Search</button>
</form>
our controller
$dat = Rent::query()
->when($request->boolean('parking'), fn($query, $value) => $query->where('parking', $value))
->when($request->boolean('elv'), fn($query, $value) => $query->where('elv', $value))
->when($request->boolean('storeroom'), fn($query, $value) => $query->where('storeroom', $value))
->when($request->input('street'), fn($query, $value) => $query->where('street', 'LIKE', "%{$value}%"))
->when($request->input('pish'), fn($query, $value) => $query->where('pish', '<=', $value))
->when($request->input('mah'), fn($query, $value) => $query->where('mah', '<=', $value))
->when($request->input('bedroom'), fn($query, $value) => $query->where('bedroom', '<=', $value))
->when($request->input('metraj'), fn($query, $value) => $query->where('metraj', '<=', $value))
//->get();
->dd();
$dat = Rent::where($dat)->get();
return view('front.house.rentres',
and our error is
"select * from `rents` where `pish` <= ?" // vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php:3754
array:1 [▼ // vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php:3754
0 => "1000"
]
Level 102
@LoverToHelp You are using the model as the query for another model??
$dat = Rent::query()
->when($request->boolean('parking'), fn($query, $value) => $query->where('parking', $value))
->when($request->boolean('elv'), fn($query, $value) => $query->where('elv', $value))
->when($request->boolean('storeroom'), fn($query, $value) => $query->where('storeroom', $value))
->when($request->input('street'), fn($query, $value) => $query->where('street', 'LIKE', "%{$value}%"))
->when($request->input('pish'), fn($query, $value) => $query->where('pish', '<=', $value))
->when($request->input('mah'), fn($query, $value) => $query->where('mah', '<=', $value))
->when($request->input('bedroom'), fn($query, $value) => $query->where('bedroom', '<=', $value))
->when($request->input('metraj'), fn($query, $value) => $query->where('metraj', '<=', $value))
->get();
// $dat = Rent::where($dat)->get(); //this makes no sense. as you already have the data :)
return view('front.house.rentres',
Please or to participate in this conversation.