/ / Передавання значення об’єкта, а потім пошук за цим об’єктом - laravel, laravel-5, красномовний, запит, конструктор запитів

Передача вартості об'єкта, потім пошук цього об'єкта - laravel, laravel-5, красномовний, запит, конструктор запитів

У мене працює пошук, який знаходить користувачів, чиїуподобання відповідають власності орендодавців. Це все добре, але я хочу, щоб орендодавець мав можливість вибрати нерухомість, потім натиснути пошук і передати об’єкт власності, з яким потрібно порівняти.

Це зображення пошуку

Скріншот

Незалежно від того, яку властивість обрано зі списку, використовується для пошуку в пошуку.

Це погляд на пошук

<div class="row">
<div class="col-md-10">
<select class="form-control" id="property_address" name="property_address">
<!--Gets all counties from DB -->
@foreach ($properties as $property)
<option value="{{$property->address . ", " . $property->town . ", " . $property->county}}">{{$property->address . ", " . $property->town . ", " . $property->county}}</option>
@endforeach
</select>
</div> <!-- ./ col-6-->
</div> <!-- ./ row-5  -->

<div class="row mt-md-4">
<div class="col-md-4">
<button type="submit" class="form-control btn btn-primary">
Search
</button>
</div>
</div>

Це контролер

Перша частина надає форму пошуку

public function searchhome(){
//Search Filter UI
//Populates fields.
$user = Auth::user();
$properties = PropertyAdvert::where("user_id", Auth::id())->get();
return view("pages/account/search/index", compact("user", "properties"));}

Далі логіка

public function searchresults(Request $request){

//Gets all users that are tenants
$tenants = User::where("userType", "tenant")->first();

//Gets all preferances
$Prefereances = TenantPreferance::all()->first();
//Gets the prefereances that match a tenant id
$pref = $Prefereances::where("user_id", $tenants->id)->first();

//Gets the current signed in users property

//Attempting to get value of property by name
$property = $request->property_address;

$result = $pref
->where("county" , $property->county)
->where("type" , $property->type)
->where("rent", "<=", $property->rent)
->where("bedrooms", "<=", $property->bedrooms)
->where("bathrooms", "<=", $property->bathrooms);

$users = $result->get();

return view("pages/account/search/results", compact("users"));
}

Я спробував використати об'єкт запиту для встановлення вибраної властивості як тієї, з якою порівнюється.

Будь-які ідеї?

Відповіді:

0 для відповіді № 1

Замість того, щоб заповнювати значення select адресою, заповніть його ідентифікатором властивості, а потім отримайте це властивість з бази даних за допомогою ідентифікатора, переданого з select.

$property = Property::find($request->property_id);


$result = $pref
->where("county" , $property->county)
->where("type" , $property->type)
->where("rent", "<=", $property->rent)
->where("bedrooms", "<=", $property->bedrooms)
->where("bathrooms", "<=", $property->bathrooms);

$users = $result->get();