Вам нужно будет добавить $area
в качестве условия поиска для решения первой проблемы.
И чтобы показать результаты на отдельной странице, вам потребуется запросить маршрут, который возвращает представление в вашем методе поиска.
// Controller
public function indexsearch(Request $request)
{
$area = request('area');
$keywords = request('keywords');
if($keywords){
$projects = Project::where('title', 'LIKE', "%{$keywords}%")
->orWhere('body', 'LIKE', "%{$keywords}%")
->orWhere('area', 'LIKE', "%{$area}%")
->get();
}else{
$projects = Project::where('title', 'LIKE', "%{$keywords}%")
->orWhere('body', 'LIKE', "%{$keywords}%")
->orWhere('area', 'LIKE', "%{$area}%")
->get();
}
return view('search_results', compact('projects'));
}
Если вы хотите показать результаты на отдельной странице, то вам не нужно здесь vue.
Вы можете сделать что-то вроде этого, чтобы отправить форму на ваш взгляд:
<form action="search"> <!-- or whatever your searchindex route is -->
<div class="form-row justify-content-center align-items-center mmt-5">
<div class="col-md-4">
<label class="sr-only" for="inlineFormInput">Query</label>
<input v-model.lazy="keywords" type="text" class="customformdes form-control mb-2" id="inlineFormInput" placeholder="E.g. Larave, Vue, Design, Writer">
</div>
<div class="col-md-4">
<label class="sr-only" for="inlineFormInputGroup">Area</label>
<input v-model.lazy="area" type="text" class="customformdes form-control mb-2" id="inlineFormInputGroup" placeholder="E.g. Jabodetabek, Medan, Surabaya">
</div>
<div class="col-md-2">
<button type="button" class="customformdes btn btn-block btn-primary mb-2"><i class="fab fa-searchengin"></i> Search</button>
</div>
</div>
</form>
Затем в блейде результатов поиска (search_results.blade.php):
<div>
<b-list-group">
@foreach($projects as $project)
<b-list-group-item>{{ $project->title }}</b-list-group-item>
@endforeach
</b-list-group>
</div>
Надеюсь, это поможет решить вашу проблему.